在WPF XAML中,如何连接2个常量,以便我可以使用预定义路径?

Phi*_*lip 13 c# wpf xaml

我想用ac#constant替换源路径的路径部分以便于路径管理,例如我有:

<Image Source="/Images/Themes/Buttons/MyPicture.png" />
Run Code Online (Sandbox Code Playgroud)

而在另一个班级,我有我的常数定义:

public static readonly string UriImagesButtons = "/Images/Big/PNG/";
Run Code Online (Sandbox Code Playgroud)

我希望有以下几点:

<Image Source="{static:UriImagesButtons + MyPicture.png}" />
Run Code Online (Sandbox Code Playgroud)

这意味着如果需要,我可以一次性全局改变路径.这样做的语法是什么?

Abe*_*cht 18

最简单的方法是使用带有StringFormat的MultiBinding:

<Path>
    <Path.Source>
        <MultiBinding StringFormat="{}{0}{1}">
            <Binding Mode="OneTime" Source="{x:Static lcl:ConstantOwner.UriImagesButtons}" />
            <Binding Mode="OneTime" Source="MyPicture.png" />
        </MultiBinding>
    </Path.Source>
</Path>
Run Code Online (Sandbox Code Playgroud)

在StringFormat参数中,您必须使用"{}"转义第一个大括号,以便XAML解析器不认为它是标记扩展.


Mau*_*lli 2

替换路径意味着您必须执行数据绑定...那么为什么不在 C# 类中保存完整的文件路径并绑定到它呢?