【问题标题】:disable ListBox Highlighting when Right Clicked右键单击时禁用列表框突出显示
【发布时间】:2014-07-30 14:23:33
【问题描述】:

谁能告诉我,下面的源代码哪里不对??

(我试图在右键单击列表框项目时禁用它们的灰色突出显示)

<ListBox ItemsSource="{Binding TotoList}"
                         VerticalAlignment="Stretch"
                         VerticalContentAlignment="Top">
                    <ListBox.Style>
                        <Style TargetType="{x:Type ListBox}">
                            <Style.Resources>
                                <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}"
                                                 Color="Transparent" />
                                <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}"
                                                 Color="Transparent" />
                            </Style.Resources>
                        </Style>
                    </ListBox.Style>
                    <ListBox.Template>
                        <ControlTemplate>
                            <Border  BorderBrush="DarkGray"
                                     BorderThickness="0">
                                <ItemsPresenter />
                            </Border>
                        </ControlTemplate>
                    </ListBox.Template>
                    <ListBox.ItemTemplate>
                        <DataTemplate>
                            <Border BorderBrush="Transparent"
                                    VerticalAlignment="Stretch"
                                    HorizontalAlignment="Stretch">
                                <Grid Width="120">
                                    <Label Content="{Binding Name}"
                                           HorizontalAlignment="Left"
                                           Margin="5,0,0,0"/>
                                </Grid>
                                <Border.Style>
                                    <Style TargetType="Border">
                                        <Style.Triggers>
                                            <Trigger Property="IsMouseOver"
                                                     Value="True">
                                                <Setter Property="Background"
                                                        Value="Transparent" />
                                            </Trigger>
                                        </Style.Triggers>
                                    </Style>
                        </Border.Style>
                        <Border.ContextMenu>
                             <ContextMenu>
                                  <MenuItem Header="Remove"
                                       Click="removeToto">
                                  </MenuItem>
                             </ContextMenu>
                        </Border.ContextMenu>
                   </Border>
             </DataTemplate>
       </ListBox.ItemTemplate>
  </ListBox>

当右键单击列表框项目以将其删除时,该项目以灰色突出显示...

【问题讨论】:

  • 嗯,您问题中的 XAML 在右键单击项目时不会以灰色突出显示项目(我对其进行了测试)。您是否出于问题的目的简化了您的真实 XAML?

标签: c# wpf xaml listbox listboxitem


【解决方案1】:

将以下资源也添加到您的 ListBox 资源中。以下键负责非活动选择画笔。

   <SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}"
                                     Color="Transparent" />

【讨论】:

  • @Alvarao 如果对您有帮助,请接受答案。
猜你喜欢
  • 2018-01-20
  • 1970-01-01
  • 1970-01-01
  • 2019-04-27
  • 1970-01-01
  • 2013-10-05
  • 1970-01-01
  • 1970-01-01
  • 2019-09-13
相关资源
最近更新 更多