【问题标题】:Setting "istabstop = false" for the Icon on MahApps Metro theme为 MahApps Metro 主题上的图标设置“itabstop = false”
【发布时间】:2014-07-15 22:55:33
【问题描述】:

我最近将 MahApps 中的 Metro 主题添加到了我拥有的 wpf 应用程序中,但现在我的窗口左上角的应用程序图标设置为制表位,我不希望这样。我已经在整个互联网上寻找解决方案,但无济于事。

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

我曾考虑从 MahApps.Metro 源代码中提取一个分支并更改属性,然后创建一个新的 .dll,但我宁愿找到一个涉及较少的解决方案。

想法?

【问题讨论】:

  • 随意 fork 源,创建一个分支,进行更改(例如删除焦点),然后对原始源进行 pr...

标签: c# wpf icons mahapps.metro


【解决方案1】:

我想通了。没有必要分叉源。我在 Metro Theme 与控件混淆方面遇到了其他几个问题,所以我只是在资源字典中手动设置它们的样式。只需将此代码添加到“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>

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多