簡體   English   中英

如何在WPF中使用Slider設置Grid的字體大小

[英]How to set font size of Grid using Slider in WPF

我創建了WPF項目。 在此我使用了GridControl和Slider! 我已經使用滑塊Value通過BindingINotifyProperty更改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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM