我有一个应用程序已经使用样式模板来定义字体系列,字体大小,前景颜色等。
该应用程序的一个功能是使用户能够选择特定颜色,然后应用于所有文本,包括文本块,列表视图,按钮等。
我已经阅读了这个链接(Find all controls in WPF Window by type),在那里我可以找到所有对象' FrameworkElement的类型,然后根据其类型将颜色应用于每个元素。但是,我不确定这是最好的方法。
答案 0 :(得分:0)
正如你所说,有很多方法可以做到这一点。 对于starter,您可以使用样式模板,然后使用StaticResource获取样式。例如:在您的视图mainwindow.xaml
中<Window.Resources>
<Style TargetType="{x:Type Control}" x:Key="baseStyle">
<Setter Property="FontSize" Value="100" />
</Style>
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource baseStyle}"></Style>
<Style TargetType="{x:Type Label}" BasedOn="{StaticResource baseStyle}"></Style>
<Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource baseStyle}"></Style>
<Style TargetType="{x:Type ListView}" BasedOn="{StaticResource baseStyle}"></Style>
<!-- ComboBox, RadioButton, CheckBox, etc... -->
</Window.Resources>
或另一种方式是: 查看:mainwindow.xaml
<Window>
<Window.resources>
<Style TargetType="{x:Type TextBox}">
<Setter Property="FontSize"
Value="14" />
</Style>
</Window.resource>
<Grid>
<TextBox Text="blah"/>
</Grid>
</Window>
OR
您可以从mainwindow构造函数
执行此操作Style = (Style)FindResource(typeof(Window));
并且,您将把它放在app.xaml
中<Style TargetType="{x:Type Window}">
<Setter Property="FontSize"
Value="14" />
</Style>