我有一个ListBox
,我需要变灰被禁用时。 每个用户请求时,它是不够的,禁用它,但它也有出现不同。 耸肩我看了其他几个地方,跟着例子,它好像它应该工作,但事实并非如此。 下面是一些例子我看了看: 例1 , 例2 。
这里是我的代码:
<Style x:Key="ListBoxStyle" TargetType="ListBox">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListBox}">
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="BorderBrush" Value="Black"></Setter>
<Setter Property="Foreground" Value="LightGray"></Setter>
<Setter Property="Background" Value="LightGray"></Setter>
<Setter Property="BorderBrush" Value="LightGray"></Setter>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
这似乎相当简单。 我做了相同的基本过程ComboBox
和TextBox
成功。 谁能帮我看在我的代码是错误的? 如何正确地做到这一点的一个例子将是巨大的。 上面列出的第一个例子似乎正是我需要的,但正确答案是“要做到这一点的唯一方法是通过重写模板”,这并不能帮助我。
我已经尝试了几种简单的解决方案。 这是可能的一些其他风格可能会影响这一点,因为我们正在与几个不同的资源字典工作。 有谁知道什么可能是跟踪下来的好办法?
编辑:我做了整个解决方案的唯一地方ListBox中正在使用的搜索是我的一部分,它的被风格化的唯一地方是我设置的样式。 根据MSDN没有一个列表框的“零件”,所以这是不可能的我无意中风格ListBox的部分造型的过程中其他一些控制。 由于没有造型,当我禁用列表框,它是冻结,但没有文字可见,并且有一个默认的背景。 当我尝试应用属性=“背景” VALUE =“浅灰色”似乎被隐藏(即无所不可见)。 如果有人知道为什么可以这样做或如何完成我的任务,我会很感激的帮助。