【问题标题】:WPF xaml Visual Studio keeps automatically changing pathway to my resourceWPF xaml Visual Studio 不断自动更改我的资源的路径
【发布时间】:2016-06-24 07:58:21
【问题描述】:

在 WPF 应用程序中使用自定义字体时遇到问题。

为了使用字体,我在标签上设置了FontFamily="pack://application:,,,/Resources/#iconfont"。但是,每当我在 xaml 中编辑标签的任何属性时,Visual Studio 都会自动将字体系列路径更改为FontFamily="iconfont",并且自定义字体不再起作用。有任何解决这个问题的方法吗?我需要更改的设置?太气人了!

编辑:只要我在标签的属性之间切换,FontFamily 就保持不变。但是如果我去编辑另一种类型的控件的属性,然后回到标签,FontFamily 会重置为“iconfont”。

【问题讨论】:

    标签: c# wpf visual-studio xaml visual-studio-2015


    【解决方案1】:

    对于初学者来说,让我们让生活更轻松,让你的混乱更整洁,方法是获取那个长包字符串,并将其作为你的资源字典中定义的资源,如 app.xaml、window.resources,只要我们可以从任何需要的地方访问它。

    因此,我们没有将FontFamily="pack://application:,,,/Resources/#iconfont" 放在它使用的每个实例上(顺便说一句,这可能会影响性能);

    <FontFamily x:Key="IconFont">
       pack://application:,,,/Resources/#iconfont
    </FontFamily>
    

    我们将其放入您的资源字典或您想要的任何位置,以便从一个地方引用和加载一次,然后在其他任何地方都可以使用它。然后在您的实例中,您只需这样做;

    <Label FontFamily="{StaticResource IconFont}"/>
    

    现在您的编辑不仅应该停止与您胡闹,而且您还有一种更清洁的方式来维护这个傻瓜。我的意思是想象如果你必须改变你的路径字符串,或者你决定使用不同的字体包,你宁愿在每个实例上都这样做,还是在一个地方继承到它使用的任何地方?

    希望这会有所帮助,干杯。

    【讨论】:

    • 每个问题都可以通过另一个级别的间接来解决。实际上,这是一个非常干净的建议。当你想从 iconfont1 更改为 iconfont2 时,一个字符串替换会影响整个应用程序。
    • 真的很好,谢谢。将其添加到 app.xaml 并将每个实例切换到 FontFamily={StaticResource IconFont}"/ 但是,每次我去编辑标签字体系列上的属性时,仍然切换回 FontFamily="iconfont"
    • @fuzzcan 认真的吗?好的,这听起来可能很愚蠢,但您可能会尝试使用旧的关闭/重新启动,因为我想不出任何会导致这种情况发生的事情,除非有人修改了一些编辑器设置或我想不到的东西。
    • @ChrisW。好的,尝试重新启动,它似乎正在工作。我还用一个旧的 winforms 项目打开了另一个 Visual Studio 实例,不确定这是否会以某种方式影响它。感谢您的帮助!
    • 很酷的交易,必须喜欢神奇的修复方法,哈哈,很高兴你得到了补救,欢迎来到 SO!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-29
    • 2011-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多