Windows 8 (WinRT) アプリで、点線の四角形を取得する独自の XAML スタイルを作成しています。スタイルのセッターでは、 を使用していますProperty="StrokeDashArray" Value="1,4"
。次に、一連の四角形を作成し、それらの四角形のスタイルを、作成したこのスタイルに明示的に設定します。最初の長方形は点線の境界線で表示されますが、他の 2 つの長方形は表示されません。ただし、に加えて、各長方形でStyle={StaticResource myDottedStyle}
も指定すると、すべてが点線の境界線で正しく表示されます。StrokeDashArray
点線の境界線が最初の四角形にしか表示されないのはなぜですか? Style
それぞれに StrokeDashArray を指定せずに、すべての長方形に適用されるを作成するにはどうすればよいですか?
完全なコード サンプルを次に示します。Windows 8 RTM で、空の XAML アプリ プロジェクトを作成し、MainPage.xaml の Grid を次のものに置き換えます。
<Page.Resources>
<Style x:Key="myDottedStyle" TargetType="Rectangle">
<Setter Property="Stroke"
Value="{StaticResource ApplicationForegroundThemeBrush}"/>
<Setter Property="StrokeThickness" Value="2"/>
<Setter Property="StrokeDashArray" Value="1,4"/>
</Style>
</Page.Resources>
<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
<Rectangle Style="{StaticResource myDottedStyle}" Width="40"
HorizontalAlignment="Left"/>
<Rectangle Style="{StaticResource myDottedStyle}" Width="40"
HorizontalAlignment="Center"/>
<Rectangle Style="{StaticResource myDottedStyle}" Width="40"
HorizontalAlignment="Right"/>
</Grid>
ここでDataTemplates について話している関連する質問を見つけましたが、それを自分の問題に変換する方法がわかりません。