当控件的 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 以仍然允许触摸

使用imageView外观禁用UIButton而不将isEnabled设置为false

Xamarin.Forms之Button