[英]Monitor a change in the property of a Telerik ScheduleView control in WPF
[英]WPF, Telerik: Change control style when disabled
我在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" />...
因此,这将处理Disabled属性。 文本会更改其颜色,但不会改变对比度,例如水印。
如何禁用此功能? 并让禁用控件更具对比度?
文本会更改其颜色,但不会改变对比度,例如水印。
为了将来参考,这是由Opacity
属性引起的。 当不透明度小于1时,它会变浅。
您正在描述的问题非常熟悉。 而且,恐怕没有什么好方法可以消除这个问题,以至于我最好能给您的建议就是不要再打扰。 如果有的话,这只会使主题和样式的使用成为现实。
但是,有一种简单的方法可以通过将IsEnabled="False"
属性替换为IsHitTestVisible="False"
和Focusable="False"
来获得所需的行为。
这些将使您无法通过键盘导航来单击或集中控制该控件,从而使其基本处于禁用状态。 现在,您可以添加更多样式属性,以使其看起来像您认为已禁用控件的外观。 例如,通过设置所需的“ 前景”和“ 背景”,或者甚至可以使用不透明度接近1(例如0.9)的方法,这将使其不比原始图像更暗,但仍然足够黑暗以至于无法正确读取。
希望这对您当前的问题有所帮助,如果您想让我进一步澄清,请发表评论。
编辑1:显然可以通过使用控件自己的DataTemplate
覆盖不透明度更改。 即使在WPF C#中禁用控件,如何也具有100%的不透明度
编辑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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.