我在Telerik控制上有麻烦。
<Style x:Key="RadDropDownButtonStyle" TargetType="telerik:RadDropDownButton">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="telerik:RadDropDownButton">
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Foreground" Value="Red" />...因此,这将处理禁用的属性。文字改变它的颜色,但它不是对比,类似于水印。
我怎么才能让这个失效?让残疾人控制的对比更大?
发布于 2017-11-09 16:31:31
文字改变它的颜色,但它不是对比,类似于水印。
对于以后的引用,这是由Opacity属性引起的。当不透明度低于1时,它就变轻了。
你所描述的问题是非常熟悉的。恐怕没有什么很好的方法来解决这个问题,所以我能给你的最好的建议就是不去麻烦你。如果有的话,它只会使使用主题和风格成为真正的痛苦。
但是,有一种简单的方法可以通过将IsEnabled="False"属性替换为IsHitTestVisible="False"和Focusable="False"来获得您想要的行为
这将使其无法通过键盘导航单击或聚焦控件,基本上使其禁用。现在,您可以添加更多的样式属性,以使其看起来像您认为禁用的控件应该看起来那样。例如,设置想要的前景和背景,或者您甚至可以使用接近1(例如: 0.9)的不透明度,这将使它比原来的更暗,但仍然足够黑暗,足以正确阅读。
我希望这能帮助你解决你目前的问题,如果你想让我进一步澄清的话,请留下评论。
编辑1:可以通过为控件使用自己的DataTemplate来覆盖不透明度更改。How to have 100% opacity even when control is disabled in wpf C#
编辑2: --我将给出一个如何正确使用其他属性的示例。
这就是通常定义禁用按钮的方法,这样做会使文本更轻巧,更难读。
<!-- Simple disabled button -->
<telerik:RadButton Content="Test Button 1" IsEnabled="False" />
<!-- Button with binding on IsEnabled -->
<telerik:RadButton Content="Test Button 2" IsEnabled="{Binding MyBinding}" />现在,我将向您展示如何使用属性IsHitTestVisible和Focusable来模拟这些结果。
<!-- Simple disabled button -->
<telerik:RadButton Content="Test Button 1" IsHitTestVisible="False" Focusable="False" />
<!-- Button with binding on IsEnabled -->
<telerik:RadButton Content="Test Button 2" IsHitTestVisible="{Binding MyBinding}" Focusable="{Binding MyBinding}" />在上面的例子中,这些按钮看起来仍然是启用的。但是,您将无法聚焦或单击它们。当然,我们确实希望看到一些不同之处,以便能够判断它们不能被使用。
<!-- Styled disabled button -->
<telerik:RadButton Content="Test Button 1" IsHitTestVisible="False" Focusable="False" >
<telerik:RadButton.Style>
<Style TargetType="telerik:RadButton">
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=Self}, Path=IsHitTestVisible}" Value="False">
<Setter Property="Opacity" Value="0.8"/>
</DataTrigger>
</Style.Triggers>
</Style>
</telerik:RadButton.Style>
</telerik:RadButton>https://stackoverflow.com/questions/46795429
复制相似问题