1

FocusVisualStyleKey を (グローバルに) 無効にしたい。

次のコードの要素を配置していない可能性を探しています:

<Style TargetType="ToggleButton">
    <Setter Property="FocusVisualStyle" Value="{x:Null}" />
</Style>

だから私はこの記事を読んで、この解決策を見つけました:

App.xaml

<Application x:Class="WpfApplication7.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             StartupUri="MainWindow.xaml">
    <Application.Resources>
        <Style x:Key="{x:Static SystemParameters.FocusVisualStyleKey}">
            <Setter Property="Control.Template">
                <Setter.Value>
                    <ControlTemplate>
                        <Rectangle StrokeThickness="0" SnapsToDevicePixels="true" />
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </Application.Resources>
</Application>

MainWindow.xaml

<Window x:Class="WpfApplication7.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
    </Window.Resources>
    <Grid>
        <Button Content="Button" HorizontalAlignment="Left" Margin="98,230,0,0" VerticalAlignment="Top" Width="75"/>
        <Button Content="Button" HorizontalAlignment="Left" Margin="217,230,0,0" VerticalAlignment="Top" Width="75"/>
        <Button Content="Button" HorizontalAlignment="Left" Margin="368,230,0,0" VerticalAlignment="Top" Width="75"/>
        <ComboBox HorizontalAlignment="Left" Margin="40,40,0,0" VerticalAlignment="Top" Width="150" Height="40"/>
        <ComboBox HorizontalAlignment="Left" Margin="317,40,0,0" VerticalAlignment="Top" Width="150" Height="40"/>
    </Grid>
</Window>

しかし、うまくいきません...誰か別のアイデアがありますか?

4

1 に答える 1

0

はい、これを行う方法はありますが、気に入らないでしょう。最初に別の xaml 辞書を作成します。その中で、使用している Aero または w/e テーマの各コントロールのスタイルを定義し、BasedOn プロパティを暗黙的なキーに設定します。

<Style TargetType="Button" BasedOn="{StaticResource {x:Type Button}}">

次に、FocusVisualStyle のセッターを作成します

<Style TargetType="Button" BasedOn="{StaticResource {x:Type Button}}">
    <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
</Style>

注: すべてのコントロールに対してこれを行う必要があります。

次に、新しいテーマ ディクショナリを Window.Resources にマージします。

<Window.Resources>
    <ResourceDictionary Source="[your dictionary]"/>
</Window.Resources>
于 2012-12-09T06:05:11.990 に答える