2
在Windows7中(也許是Vista),當TextBoxes接收到輸入焦點或獲取MouseOver時,現在會獲得藍色強調矩形。Windows7上的WPF文本框邊框
在我的WPF應用程序中,藍色焦點矩形真的伸出拇指 - 它不符合應用程序其餘部分的視覺樣式。
我該如何禁用它 - 或者更好的方式是自定義它?
(設置FocusVisualStyle到:在XAML {X}爲空不執行任何操作。)
在Windows7中(也許是Vista),當TextBoxes接收到輸入焦點或獲取MouseOver時,現在會獲得藍色強調矩形。Windows7上的WPF文本框邊框
在我的WPF應用程序中,藍色焦點矩形真的伸出拇指 - 它不符合應用程序其餘部分的視覺樣式。
我該如何禁用它 - 或者更好的方式是自定義它?
(設置FocusVisualStyle到:在XAML {X}爲空不執行任何操作。)
這是因爲適用於文本框的默認樣式。要修改此行爲,您必須創建一個自定義樣式/模板。只是看看這個樣品
<Style x:Key="TextBoxStyle1" BasedOn="{x:Null}" TargetType="{x:Type TextBox}">
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Padding" Value="1"/>
<Setter Property="AllowDrop" Value="true"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="ScrollViewer.PanningMode" Value="VerticalFirst"/>
<Setter Property="Stylus.IsFlicksEnabled" Value="False"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TextBox}">
<Border x:Name="border" Background="#FF8F8F8F" BorderBrush="#FF585858" CornerRadius="3" BorderThickness="2">
<ScrollViewer x:Name="PART_ContentHost" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsFocused" Value="True">
<Setter Property="BorderBrush" TargetName="border" Value="Silver"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Opacity" TargetName="border" Value="0.15"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="BorderBrush" TargetName="border" Value="Silver"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
謝謝。可惜我們需要這樣的解決方法。 – NetworkBurger