【问题标题】:Changed Background Color of Element when Disabled禁用时更改元素的背景颜色
【发布时间】:2010-09-15 19:33:39
【问题描述】:

当控件被禁用或只读时,如何将默认样式 Xaml 中的 TextBox 控件的背景颜色更改为不同的颜色?

【问题讨论】:

    标签: c# silverlight xaml


    【解决方案1】:

    您可以使用以下样式的触发器来实现此目的:

        <TextBox>
            <TextBox.Style>
                <Style TargetType="TextBox">
                    <Style.Triggers>
                        <Trigger Property="IsReadOnly" Value="True">
                            <Setter Property="Background" Value="Green" />
                        </Trigger>
                        <Trigger Property="IsEnabled" Value="True">
                            <Setter Property="Background" Value="Red" />
                        </Trigger>
                    </Style.Triggers>
                </Style>
            </TextBox.Style>
        </TextBox>
    

    【讨论】:

    • 我收到一个错误,“在样式中找不到可附加属性触发器”
    • @gmcalab Style.Triggers 在 Silverlight 中不受支持;这是 WPF-only。
    【解决方案2】:

    我目前不在 PC 上(只是移动设备),但我认为您可以编辑控件的模板,并且您的某些控件有一些视觉状态,用于定义禁用状态、鼠标悬停等内容...您应该能够重新定义哪个?

    【讨论】:

    • 你有表情融合吗?它让这类事情的生活变得如此轻松
    【解决方案3】:

    我完成此操作的方法是为控件创建一个Converter。 当控件绑定到一个对象时,它会检测控件是否来自它所绑定的对象的Enabled。在此基础上,它会相应地设置Textbox 的背景颜色。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-24
      • 1970-01-01
      • 1970-01-01
      • 2014-10-29
      • 1970-01-01
      • 1970-01-01
      • 2019-03-05
      • 1970-01-01
      相关资源
      最近更新 更多