为MahApps Metro主题上的Icon设置“istabstop = false”

时间:2014-07-09 19:01:01

标签: c# wpf icons mahapps.metro

我最近将MahApps的Metro主题添加到了我的wpf应用程序中,但是现在我窗口左上角的应用程序图标设置为制表位,我不想要它。我已经遍布整个互联网寻求解决方案,但无济于事。

使用Snoop我发现Icon是一个名为" PART_Icon"的ContentControl。但据我所知,没有办法获取它的属性。

我已经考虑过从MahApps.Metro源代码中获取一个分支并更改属性然后创建一个新的.dll,但我宁愿找到一个参与度较低的解决方案。

思想?

1 个答案:

答案 0 :(得分:2)

我明白了。没有必要分叉源。我还有一些其他问题与Metro主题搞乱控件,所以我只是在资源字典中手动设置他们的样式。只需将此代码添加到“ResourceDictionary”标记内的Application xaml中。

        <Style TargetType="ContentControl">
            <Setter Property="IsTabStop" Value="False"/>
        </Style>

焦点也会切换到“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>

要记住的一件事是,这将为这些类型的所有控件设置这些值,因此您需要确保在其他任何地方都不会弄乱您。你去吧!祝你好运!