我想在滑块的值上禁用关闭图标。假设滑块具有正值,则禁用关闭功能(红色X图标)。如果没有则启用它。
我认为在代码中设置WindowStyle
。
C#代码:
public WindowStyle WindowStyle { get; set; }
private void SliderValueChanged(object sender,
RoutedPropertyChangedEventArgs<double> e)
{
double value = slider.Value;
if (value > 0.0)
this.WindowStyle = WindowStyle.None;
else
this.WindowStyle = WindowStyle.SingleBorderWindow;
}
XAML代码:
<Window x:Class="TestAsync.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Closing="MainWindow_Closing"
Title="MainWindow" Height="350" Width="525" WindowStyle="SingleBorderWindow">
<Grid>
<Button Content="Start" HorizontalAlignment="Left" Margin="205,245,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click"/>
<Slider Maximum="5000" TickPlacement="BottomRight" TickFrequency="100" IsSnapToTickEnabled="True" Name="slider" Margin="10,30,10,0" Height="30" ValueChanged="SliderValueChanged" />
</Grid>
</Window>
但它不起作用。还有一个警告:
&#39; TestAsync.MainWindow.WindowStyle&#39;隐藏继承成员&#39; System.Windows.Window.WindowStyle&#39;。如果想要隐藏,请使用new关键字。
答案 0 :(得分:0)
这里有两个问题:首先你已经声明了自己的WindowStyle
属性,这个属性应该从Window继承。其次,您的Slider应该将一些Minimum
设置为负值,以便用户可以将其滑动到某个负值。否则,他所能做的只是在0
和最大值之间的范围内滑动:
//remove this
//public WindowStyle WindowStyle { get; set; }
并为滑块添加一些否定的Minimum
:
<Slider Maximum="5000" TickPlacement="BottomRight" TickFrequency="100"
IsSnapToTickEnabled="True" Name="slider" Margin="10,30,10,0" Height="30"
ValueChanged="SliderValueChanged" Minimum="-100"/>
现在应该可以了。