为什么x:静态工作在我的WPF示例中?

时间:2012-02-06 15:54:08

标签: wpf .net-3.5

[这是.Net 3.5。]我看到很多例子说,这样做,所以我一定要错过一些东西:

我有一个包含Resources.resx文件的项目。在Resources文件中是公共的字符串。其中一个是“取消”,显示在Resources.Designer.cs的这个片段中:

namespace WFT.PumpSvc.Bench.Properties {
    public class Resources {
        public static string Cancel {
            get {
                return ResourceManager.GetString("Cancel", resourceCulture);
            }
        }
...

接下来,我有一些

的xaml
xmlns:strings="clr-namespace:WFT.PumpSvc.Bench.Properties"

<wft:TouchButton Name="closeButton">"{x:Static strings:Resources.Cancel}"</wft:TouchButton>

(TouchButton继承自Button。)

我没有在我的按钮上显示“取消”,而是看到{x:Static strings:Resources.Cancel}。我错过了什么,没有找到字符串?

2 个答案:

答案 0 :(得分:2)

你不能直接在一个元素中写一个标记扩展(至少不是这种形式),它必须在一个属性中:

<wft:TouchButton Name="closeButton" Content="{x:Static strings:Resources.Cancel}"></wft:TouchButton>

您也可以这样写:

<wft:TouchButton Name="closeButton">
    <x:Static Member="strings:Resources.Cancel" />
</wft:TouchButton>

答案 1 :(得分:2)

你把它变成了一个字符串,不会像这样解析,使用element-syntax:

<wft:TouchButton Name="closeButton">
     <x:Static Member="strings:Resources.Cancel"/>
</wft:TouchButton>