[英]Sliders in a C# WPF project
我只想在C#WPF項目中創建一個滑塊並將滑塊的值寫入標簽中。 我知道這可能真的很容易,但是我無法使其正常運行。 所以這是我的XAML代碼中的滑塊:
<Slider Height="21" Minimum="-255" Maximum="255" x:Name="sld_brightness" />
<Label x:Name="lb_brightness_nb" />
現在,我嘗試根據C#代碼中的滑塊值更改標簽的值:
public void sld_brightness_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
lb_brightness_nb.Content = (int)sld_brightness.Value;
}
該代碼可以編譯,但不執行任何操作。 它不起作用。 怎么了?
您可以直接綁定它; 無需為此創建事件處理程序。
<Slider Height="21" Minimum="-255" Maximum="255" x:Name="sld_brightness" />
<Label x:Name="lb_brightness_nb"
Content="{Binding ElementName=sld_brightness,Path=Value,Converter={StaticResource DoubleToStringConverter}}" />
如果要使用事件處理程序,則看起來好像缺少了連線:
<Slider Height="21" Minimum="-255" Maximum="255" x:Name="sld_brightness"
ValueChanged="sld_brightness_ValueChanged" />
編輯
要僅顯示整數,請使用IValueConverter
。 使用<local:DoubleToStringConverter x:Key="DoubleToStringConverter" />
將其添加到資源部分。
public class DoubleToStringConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return Math.Round((double)value);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
我可以看到標簽的名稱是lb_brightness_nb,然后是lb_brightnessValue。 您可以更改其名稱以進行編譯。
您的代碼應如下所示:
public void sld_brightness_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
lb_brightness_nb.Content = sld_brightness.Value;
}
讓我知道你在說什么還是其他。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.