当控件的 IsEnabled 为 false 时如何设置通常的背景 [关闭]
Posted
技术标签:
【中文标题】当控件的 IsEnabled 为 false 时如何设置通常的背景 [关闭]【英文标题】:How to set usual background when IsEnabled of control is false [closed] 【发布时间】:2022-01-24 00:26:20 【问题描述】:我不想更改用户我的日历,所以我设置 IsEnabled = false。但我不喜欢它的背景:
我想看到他们像往常一样的背景:
有没有可能?
【问题讨论】:
【参考方案1】:您应该使用Calendar.BlackoutDates
属性来禁用特定日期或日期范围。
C#
Calendar calendarWithBlackoutDates = new Calendar();
// Add the dates that are not selectable.
calendarWithBlackoutDates.BlackoutDates.Add(
new CalendarDateRange(new DateTime(2009, 1, 2), new DateTime(2009, 1, 4)));
XAML
<Calendar Margin="20" SelectionMode="MultipleRange"
IsTodayHighlighted="false"
DisplayDate="1/1/2009"
DisplayDateEnd="1/31/2009"
xmlns:sys="clr-namespace:System;assembly=mscorlib">
<Calendar.BlackoutDates>
<CalendarDateRange Start="1/2/2009" End="1/4/2009"/>
</Calendar.BlackoutDates>
</Calendar>
请访问 API 参考以获取完整示例:Calendar.BlackoutDates Property。
阅读本文以进一步了解如何处理Calendar
控件:Calendar
【讨论】:
【参考方案2】:我最近在禁用 wpf 控件和生成的样式方面遇到了类似的问题。对我来说,设置 IsHitTestVisible = False 是最好的选择。但不能 100% 确定这是否只会禁用鼠标交互或预定义的键盘控件。
【讨论】:
以上是关于当控件的 IsEnabled 为 false 时如何设置通常的背景 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
WPF XAML 在 IsEnabled 状态下更改图像不透明度
使带有 imageView 的 UIButton 看起来被禁用而不将 isEnabled 设置为 false
当 ArrayAdapter.isEnabled 返回 false 时,ListView 中的分隔符消失
在 UIControl 中覆盖 isEnabled 以仍然允许触摸