小编Nal*_*are的帖子

将禁用的列表框背景更改为灰色

我有一个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>
Run Code Online (Sandbox Code Playgroud)

这似乎相当简单.我做了相同的基本过程ComboBoxTextBox成功.任何人都可以帮我看看我的代码错在哪里?如何正确地做到这一点的一个例子将是伟大的.上面列出的第一个例子似乎正是我所需要的,但正确答案是"这样做的唯一方法是覆盖模板",这对我没有帮助.

我已经尝试了几个简单的解决方案.一些其他风格可能会影响这一点,因为我们正在使用几个不同的资源字典.有人知道什么是追踪这个的好方法吗?

编辑: 我对整个解决方案进行了搜索,而ListBox正在被使用的唯一地方是我的部分,它唯一被设置样式的地方就是我设置的样式.根据MSDN,没有ListBox的"部分",所以我不可能在为其他控件设置样式的过程中无意中设置了ListBox的一部分.没有样式,当我禁用ListBox时,它被冻结但没有文本可见,并且具有默认背景.当我尝试应用Property ="Background"Value ="LightGray"时,它似乎被隐藏(即没有任何东西可见).如果有人知道为什么会这样做或如何完成我的任务,我会很感激帮助.

wpf triggers background listbox controltemplate

4
推荐指数
3
解决办法
6934
查看次数

WPF,如果基于单选按钮的语句已选中

我在某些似乎很简单的事情上遇到了困难。我来自Windows窗体,并从WPF开始。我认为我有一个简单的语法问题,但似乎无法找到此单选按钮问题的具体示例。

我的GUI上有一个单选按钮,可通过地图选择或列表来运行查询。单击加载时,如果选择了地图,它将执行一项操作,对列表执行另一项操作。代码类似于以下内容:

private void Load_Click(object sender, RoutedEventArgs e)
{
  if (rdBtnList.Checked == true)
  {
    //do this
  }

  // if rdBtnList not checked (ie if rdBtnMap is checked)
  // do this
}
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激。谢谢。

wpf checked jradiobutton

1
推荐指数
1
解决办法
1万
查看次数