安装程序
我有以下的风格,我适用于大多数在我的应用程序的窗口:
<ResourceDictionary x:Class="MyNamespace.ChromeWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style x:Key="CustomChromeTest" TargetType="{x:Type Window}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Window}">
<Grid x:Name="GridMain" Background="{StaticResource MainFormColor}">
<ContentPresenter HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
我用它来定制在我窗口的窗口铬(我已删除的那部分),这样所有窗口的实际内容去演讲的内容里面。 我用这个风格像这样:
<Window x:Class="MyNamespace.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Title="Window1" Height="300" Width="300"
Style="{DynamicResource CustomChromeTest}">
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/WPFControlLibrary;component/Resources/ChromeWindow.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>
<StackPanel>
<Button Margin="5" Content="Button" Width="75"/>
<Button Margin="5" Content="Button" Width="75"/>
<Button Margin="5" Content="Button" Width="75"/>
<Button Margin="5" Content="Button" Width="75"/>
</StackPanel>
以上这XAML产生类似如下的窗口:
问题
在一个正常的窗口中,当用户通过控制Tab键, 当前按钮被高亮显示以示出用户当前按钮 。 注意下面周围的3按钮的边框。
出于某种原因, 我用我的风格的那一刻,这个功能消失 ,没有任何迹象表明其在按钮具有焦点,即使用户可以使用Tab键一样正常。 这是为什么,我怎么能恢复的内置功能。
请注意
我用这种风格与几十个窗口和数以百计的控制。 我不想使用样式与一个显示边框当控件具有焦点触发每个控制。 我想恢复之前我申请我的自定义窗口风格,目前正在使用的默认功能。