Source and Project
Styleを使用することで、特定コントロールを一括してプロパティを変更することができます。文字通りスタイルを決定することが出来るわけですが、気をつけなければならないことがあります。
コントロールの特定のプロパティによっては、期待しない結果が変えることがあります。たとえば、DataGridがコンテンツにある場合にButtonのMinWidthを設定すると・・・
<Window.Resources>
<Style TargetType="Button">
<Setter Property="MinWidth" Value="100" />
</Style>
</Window.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Controls:DataGrid x:Name="dataGrid" ItemsSource="{Binding}" />
<ListView Grid.Row="1" ItemsSource="{Binding}">
<ListView.View>
<GridView>
<GridViewColumn Header="ヘッダー" DisplayMemberBinding="{Binding [0]}" />
<GridViewColumn Header="ヘッダー" DisplayMemberBinding="{Binding [1]}" />
<GridViewColumn Header="ヘッダー" DisplayMemberBinding="{Binding [2]}" />
<GridViewColumn Header="ヘッダー" DisplayMemberBinding="{Binding [3]}" />
</GridView>
</ListView.View>
</ListView>
</Grid>
画像を見ていただければわかりあすが、カーソルがある部分はButtonになっています。この部分のMinWidthが設定されてしまうため、残念なDataGridになってしまっています。この結果を受けてわかることは
1.Styleを設定する場合は自分が意図しないものまで変更されていないか注意する必要がある。
2.コントロールを作成する際はStyleで意図しない変更を受けないようにする必要がある。
という2点だと思います。ちなみにButton.Widthを設定してもDataGridは残念な結果にはなりません。
Source and Project