C# 设置“;istabstop=false";有关MahApps Metro主题的图标

C# 设置“;istabstop=false";有关MahApps Metro主题的图标,c#,wpf,icons,mahapps.metro,C#,Wpf,Icons,Mahapps.metro,我最近将MahApps中的Metro主题添加到了我的wpf应用程序中,但现在我窗口左上角的应用程序图标被设置为tab stop,我不希望这样。我在互联网上到处寻找解决方案,但都没有用 使用Snoop,我发现图标是一个名为“PART_Icon”的ContentControl,但据我所知,无法访问它的属性 我曾经考虑过从MahApps.Metro源代码中取一个分支,更改属性,然后创建一个新的.dll,但我更愿意找到一个不太复杂的解决方案 想法?我想出来了。没有必要分叉源代码。Metro主题与控件之间

我最近将MahApps中的Metro主题添加到了我的wpf应用程序中,但现在我窗口左上角的应用程序图标被设置为tab stop,我不希望这样。我在互联网上到处寻找解决方案,但都没有用

使用Snoop,我发现图标是一个名为“PART_Icon”的ContentControl,但据我所知,无法访问它的属性

我曾经考虑过从MahApps.Metro源代码中取一个分支,更改属性,然后创建一个新的.dll,但我更愿意找到一个不太复杂的解决方案


想法?

我想出来了。没有必要分叉源代码。Metro主题与控件之间存在一些其他问题,所以我只是在资源字典中手动设置它们的样式。只需将此代码添加到“ResourceDictionary”标记内的应用程序xaml中


焦点还将切换到“FlyoutsControl”,因此我将该控件中的IsTabStop也设置为False:

        <Style TargetType="controls:FlyoutsControl">
            <Setter Property="IsTabStop" Value="False"/>
        </Style>

最后,为了便于参考,我们遇到了一个问题,即文本框的MinWidth和MinHeight对于我们的需要来说太大了,所以下面是如何设置它们的:

        <Style TargetType="TextBox">
            <Setter Property="MinWidth" Value="0" />
            <Setter Property="MinHeight" Value="0" />
        </Style>


需要记住的一点是,这将为这些类型的所有控件设置这些值,因此您需要确保这不会在其他任何地方使您陷入混乱。好了!祝你好运

您可以自由地分叉源代码,创建分支,进行更改(例如删除焦点),然后对原始源代码进行pr。。。
        <Style TargetType="TextBox">
            <Setter Property="MinWidth" Value="0" />
            <Setter Property="MinHeight" Value="0" />
        </Style>