我想知道如何以编程方式设置DataGrid
Header
字体大小,以防我想将字体大小保留在数据库中,因为有时用户可能会将应用程序移动到较小的显示器(1024x768)让我们说,只是他可能会编辑他的字体大小,一切都会好的。
这是Style
我现在正在使用我的标题样式:
<Style TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="Background" Value="#0091EA"/>
<Setter Property="Opacity" Value="1"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="HorizontalContentAlignment" Value="Center" />
<Setter Property="FontSize" Value="16"/>
<Setter Property="FontFamily" Value="Arial"/>
<Setter Property="Height" Value="40"/>
</Style>
那么如果我想
,怎么能从代码中设置这个属性呢?我可以像这样简单地说:
<Style TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="Background" Value="#0091EA"/>
<Setter Property="Opacity" Value="1"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="HorizontalContentAlignment" Value="Center" />
<Setter Property="FontSize" Value="{Binding FontSize}"/>
<Setter Property="FontFamily" Value="Arial"/>
<Setter Property="Height" Value="40"/>
</Style>
我更改了<Setter Property="FontSize" Value="16"/>
到
<Setter Property="FontSize" Value="{Binding FontSize}"/>
Value="{Binding FontSize}" //is new
那么如何才能将FontSize
的值添加到我的代码背后呢?
答案 0 :(得分:1)
例如,您可以在窗口中添加double属性:
public partial class MainWindow : Window
{
public double MyFontSize { get; set; } = 30;
public MainWindow()
{
InitializeComponent();
}
}
<Window.Resources>
<Style TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="Background" Value="#0091EA"/>
<Setter Property="Opacity" Value="1"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="HorizontalContentAlignment" Value="Center" />
<Setter Property="FontSize" Value="{Binding MyFontSize, RelativeSource={RelativeSource AncestorType=Window}}"/>
<Setter Property="FontFamily" Value="Arial"/>
<Setter Property="Height" Value="40"/>
</Style
</Window.Resources>
请注意,如果您希望能够在运行时动态更改源属性的值,则窗口类(或您选择实现该属性的任何位置)应实现INotifyPropertyChanged
事件并引发更改通知。