【问题标题】:How to disable listbox hover effect? [duplicate]如何禁用列表框悬停效果? [复制]
【发布时间】:2020-06-14 06:04:41
【问题描述】:

我用谷歌搜索了很多东西,但我找不到有人可以解释一下如何禁用这种恶心的效果
代码:

<ListBox x:Name="HistoryList" Margin="10" BorderBrush="{x:Null}" Background="Transparent" ScrollViewer.CanContentScroll="False" ScrollViewer.VerticalScrollBarVisibility="Hidden">
            <ListBoxItem>asd</ListBoxItem>
        </ListBox>

我已经尝试过focusable = false

                <ListBox.ItemContainerStyle>
                <Style TargetType="ListBoxItem">
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate>
                                <ContentPresenter/>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Style>
            </ListBox.ItemContainerStyle>

但是当我这样做时,这些项目不显示。请帮帮我

【问题讨论】:

  • here。 1 分钟的谷歌。 :)
  • 实际上并没有帮助:(

标签: c# wpf


【解决方案1】:

我之前做过这个,并且成功移除了悬停效果。

<ListBox>
   <ListBox.Resources>
      <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent" />
      <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="Black" />
      <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Transparent" />
      <SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}" Color="Transparent" /> 
   </ListBox.Resources>
</ListBox>

这将允许您拥有一个看起来像项目控件的 LisBox,但如果您愿意,它仍然支持选择。

【讨论】:

    【解决方案2】:

    您必须设置ControlTemplate.TargetType 属性。否则不会加载模板。

    "另请注意,TargetType 属性是必需的 ControlTemplate 如果模板定义包含 内容演示者。”Microsoft Docs: ControlTemplate.TargetType

    <ListBox.ItemContainerStyle>
      <Style TargetType="ListBoxItem">
        <Setter Property="Template">
          <Setter.Value>
            <ControlTemplate TargetType="ListBoxItem">
              <Border BorderBrush="{TemplateBinding BorderBrush}" 
                      BorderThickness="{TemplateBinding BorderThickness}" 
                      Background="{TemplateBinding Background}">
                <ContentPresenter />
              </Border>
    
              <ControlTemplate.Triggers>
                <Trigger Property="IsSelected" Value="True">
                  <Setter Property="Background" Value="Red"/>
                </Trigger>
              </ControlTemplate.Triggers>
            </ControlTemplate>
          </Setter.Value>
        </Setter>
      </Style>
    </ListBox.ItemContainerStyle>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-01
      • 2011-10-19
      • 1970-01-01
      • 2013-08-17
      • 2016-08-31
      • 1970-01-01
      相关资源
      最近更新 更多