【发布时间】:2013-10-14 15:23:47
【问题描述】:
我有一个带有 ScrollViewer.VerticalScrollBarVisibility=Auto 的 RichTextBox,它的工作方式和我想要的一样。但是,当我将鼠标悬停在文档上时,我会在整个 RichTextBox 元素周围出现一个蓝色边框,我似乎可以让它消失的唯一方法是设置 IsHitTestVisible=false,但如果我这样做,滚动条也会被禁用...我尝试过的其他事情是 IsFocusable=false 并触发 RichTextBox 的样式,但没有任何成功:
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="BorderBrush" Value="{x:Null}"/>
</Trigger>
</Style.Triggers>
我的应用程序中显示在 ListBox 中的图像也有同样的问题。我有一个看起来像这样的 ListBox:
<ListBox ItemsSource="{Binding Photos}"
BorderBrush="{x:Null}"
SelectedItem="{Binding SelectedPhoto, Mode=TwoWay}">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid IsItemsHost="True"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Columns="3" Rows="1"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Image Source="{Binding}"
Stretch="Uniform"
SnapsToDevicePixels="True"/>
</DataTemplate>
</ListBox.ItemTemplate>
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Style.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}"
Color="Transparent"/>
</Style.Resources>
<Setter Property="Foreground" Value="Transparent"/>
<Setter Property="BorderBrush" Value="{StaticResource Brush_Secondary}"/>
<Setter Property="BorderThickness" Value="5"/>
<Setter Property="Margin" Value="5"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="BorderBrush" Value="{StaticResource Brush_Primary}"/>
</Trigger>
<Trigger Property="IsSelected" Value="True">
<Setter Property="BorderBrush" Value="{StaticResource Brush_Selected}"/>
</Trigger>
</Style.Triggers>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
但无论我使用哪种颜色(Brush_Primary/Secondary/Selected),边框总是只是不同深浅的蓝色......我如何摆脱每个 WPF 控件似乎都存在的蓝色覆盖/突出显示的东西?
【问题讨论】:
标签: c# wpf wpf-controls overlay