WPF 中的樣式
介紹性發言
在 WPF 中, Style 定義給定可視元素的一個或多個依賴項屬性的值。整個應用程式使用樣式以使使用者介面更加一致(例如,為所有對話方塊按鈕提供一致的大小),並使批量更改更容易(例如,更改所有按鈕的寬度。)
樣式通常在應用程式中的高階別的 ResourceDictionary
中定義(例如在 App.xaml 或主題中),因此它可以在應用程式範圍內使用,但它們也可以針對單個元素及其子元素進行定義,例如應用風格到 StackPanel
內的所有 TextBlock
元素。
<StackPanel>
<StackPanel.Resources>
<Style TargetType="TextBlock">
<Setter Property="Margin" Value="5,5,5,0"/>
<Setter Property="Background" Value="#FFF0F0F0"/>
<Setter Property="Padding" Value="5"/>
</Style>
</StackPanel.Resources>
<TextBlock Text="First Child"/>
<TextBlock Text="Second Child"/>
<TextBlock Text="Third Child"/>
</StackPanel>
重要筆記
- 定義樣式的位置會影響它的可用位置。
StaticResource
無法解決前向引用。換句話說,如果你要定義依賴於資源字典中的另一個樣式或資源的樣式,則必須在它所依賴的資源之後/之下定義它。StaticResource
是引用樣式和其他資源的推薦方法(出於效能和行為原因),除非你特別要求使用DynamicResource
,例如,對於可在執行時更改的主題。
資源
MSDN 上有關於樣式和資源的詳盡文章,這些文章的深度超出了這裡提供的深度。