[英]How to set font size of Grid using Slider in WPF
我創建了WPF項目。 在此我使用了GridControl和Slider! 我已經使用滑塊Value通過Binding
和INotifyProperty
更改GridControl的FontSize。 問題是它更改了FontSize的值,但不適用,並且在以下位置生成了Null Object Reference Error
:
CS文件:
private void Slider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
// ... Get Slider reference.
var slider = sender as Slider;
// ... Get Value.
double value = slider.Value;
// ... Set Window Title.
this.grid.FontSize = value; // Error HERE
}
XAML代碼
<Grid>
<Slider Minimum="15" Maximum="30" Value="{Binding GridFontSize, Mode=TwoWay}" ValueChanged="Slider_ValueChanged" />
<dxg:GridControl AutoGenerateColumns="AddNew" Name="grid" Margin="0,25,0,0">
<dxg:GridControl.View>
<dxg:TableView Name="View" AllowEditing="False" ShowTotalSummary="True" PreviewMouseDown="View_PreviewMouseDown" MouseDown="View_MouseDown" />
</dxg:GridControl.View>
</dxg:GridControl>
</Grid>
如何解決這個問題呢? 誰能回答我的查詢?
首先使用Name
屬性為Grid
命名:
<Grid Name="YourGrid">
<Slider Minimum="15" Maximum="30" Value="{Binding GridFontSize, Mode=TwoWay}"
ValueChanged="Slider_ValueChanged" />
<dxg:GridControl AutoGenerateColumns="AddNew" Name="grid" Margin="0,25,0,0">
<dxg:GridControl.View>
<dxg:TableView Name="View" AllowEditing="False" ShowTotalSummary="True"
PreviewMouseDown="View_PreviewMouseDown" MouseDown="View_MouseDown" />
</dxg:GridControl.View>
</dxg:GridControl>
</Grid>
現在,您可以在代碼中使用該名稱來引用它:
private void Slider_ValueChanged(object sender,
RoutedPropertyChangedEventArgs<double> e)
{
// ... Get Slider reference.
var slider = sender as Slider;
// ... Get Value.
double value = slider.Value;
// ... Set Window Title.
TextElement.SetFontSize(YourGrid, value);
}
值無效,因此您需要將代碼放入try catch中。 在catch中將其設置為零。 還要檢查值是否低於零並設置為零。
我有類似的代碼,其中字體大小也綁定到滑塊,並且在下面的fontsize上有一個轉換器:
公共類IntToDoubleConverter:IValueConverter {
public object Convert( object value, System.Type targetType, object parameter, System.Globalization.CultureInfo culture )
{
double result = 0;
try
{
result = (double)((int)value);
}
catch (Exception) { }
return result;
}
public object ConvertBack( object value, System.Type targetType, object parameter, System.Globalization.CultureInfo culture )
{
return (int) ((double)value);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.