Language detail: XAML
Coverage: 3.05%
|
number of '+' ratings |
contribution for coverage |
Unsolved challenges
- 文字列で+を表示する (Nested Flatten)
- 年賀はがきの当せん番号 (Nested Flatten)
- 箱詰めパズルの判定 (Nested Flatten)
- 関数やメソッドのソースの平均行数 (Nested Flatten)
- コレクションの実装 (Nested Flatten)
codes
HTTPでGET
(Nested
Flatten)
今回もLoose XAMLではありません、要コンパイルです。OSタグとしてWindowsを付けていないのはわざとです。かといって、Widnows以外でWPFが使える環境も現時点ではないでしょうから、OS非依存も付けられないという中途半端な状態です。ごめんなさい。
1 2 3 4 5 6 | <Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="XMLから情報を取り出す">
<WebBrowser Source="http://ja.doukaku.org/feeds/comments/"/>
</Window>
|
XMLから情報を取り出す
(Nested
Flatten)
今回はLoose XAMLではありません。外部へのアクセスはLoose XAMLだと権限不足で不可です。「dataという変数に代入されているとします」とありますが、XmlDataProvider要素がそれです。XmlDataProvider型の変数data (x:Key="data"より)と思ってください、WpfApplication1.Window1クラスのフィールド(メンバ変数)のような寿命を持ちます(口から出任せ)。あとはバインディングでXPath指定してlastBuildDateの中身を取り出すだけです。
1 2 3 4 5 6 7 8 9 | <Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="XMLから情報を取り出す">
<Window.Resources>
<XmlDataProvider x:Key="data" Source="http://ja.doukaku.org/feeds/comments/" XPath="/"/>
</Window.Resources>
<Label Content="{Binding Source={StaticResource data}, XPath=//lastBuildDate}"/>
</Window>
|
クリップボードへの転送
(Nested
Flatten)
XAML/WPFのコマンドという仕組みを使えば、TextBoxなど一部のコントロールに限りながら、C#またはVBなどによるコーディング無しにコピーを実装できます。もちろん、コマンドへの応答はC#/VBソース内での処理も可能です。
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<DockPanel>
<Menu DockPanel.Dock="Top">
<MenuItem Header="編集(_E)">
<MenuItem Command="Copy"/>
</MenuItem>
</Menu>
<TextBox/>
</DockPanel>
</Page>
|
Hello, world!
(Nested
Flatten)
Loose XAMLです。.NET Framework 3.0のある環境で、このコードを拡張子xamlで保存すれば、ダブルクリックすると表示できます。
1 2 3 4 5 6 7 8 9 | <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Label
FontSize="36pt"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center">Hello, wrold!</Label>
</Page>
|
ウィンドウの表示
(Nested
Flatten)
100x75だと「こんにち...」になっちゃうけど許して(笑)。
1 2 3 4 5 | <Window x:Class="Window.Konnichiwa"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="こんにちは、GUI!" Width="100" Height="75" WindowStartupLocation="CenterScreen" WindowStyle="ToolWindow">
</Window>
|
XAMLでGUI!
1 2 3 4 5 6 7 8 | <Window x:Class="Window.Konnichiwa"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Doukaku" Width="100" Height="75" WindowStartupLocation="CenterScreen" WindowStyle="ToolWindow">
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
<TextBlock FontSize="8">こんにちは、GUI!</TextBlock>
</StackPanel>
</Window>
|



egtra
#9247()
[
XAML
]
Rating0/0=0.00
<Window x:Class="WpfApplication1.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="ダブルクリックの検出" Width="300" Height="300" MouseDoubleClick="Window_MouseDoubleClick" > <x:Code> <![CDATA[ private void Window_MouseDoubleClick(object sender, MouseButtonEventArgs e) { MessageBox.Show(this, "ダブルクリックされました: " + e.GetPosition(this).ToString()); } ]]> </x:Code> </Window>Rating0/0=0.00-0+
[ reply ]