【问题标题】:How can I use the {x:Static ...} extension for Phone7 Silverlight apps?如何为 Phone7 Silverlight 应用程序使用 {x:Static ...} 扩展?
【发布时间】:2011-01-16 23:06:40
【问题描述】:

我正在编写一个 Phone 7 应用程序,我想在标记中引用常量值。我相信应该通过x:Static 来做到这一点。

但是,Visual Studio 一直声称它不知道 x:static。这里的秘诀是什么?我有以下内容:

<phone:PhoneApplicationPage 
  ...
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  ...

  <Image Height="{x:Static App.ImageHeight}" ... />
  ...

当然还有:

public partial class App : Application
{
  public const double ImageHeight = 100;
  ...

错误消息是“未找到类型'x:Static'。验证...”。

【问题讨论】:

    标签: silverlight xaml windows-phone-7 static constants


    【解决方案1】:

    x:Static 仅在 WPF 中可用 - 用于浏览器的 Silverlight 和用于 Windows Phone 7 的 Silverlight 都不支持此标记扩展。

    通常的解决方法是创建一个(非静态)类,该类具有简单地包装您想要的静态属性的属性,并创建一个实例作为资源并以这种方式绑定它。

    示例*:

    public class StaticSideEnums
    {
        public static Side Bid { get { return Side.Bid; } }
        public static Side Ask { get { return Side.Ask; } }
    }
    

    在资源(app.xaml)中:

    <ResourceDictionary>
        <local:StaticSideEnums x:Key="StaticSideEnums"/>
    </ResourceDictionary>
    

    在使用它的 xaml 中:

    <toolkit:ListPicker Name="picker" SelectionChanged="OnSelectionChanged">
        <toolkit:ListPickerItem Content="Buy"  Tag="{Binding Bid, Source={StaticResource StaticSideEnums}}" />
        <toolkit:ListPickerItem Content="Sell" Tag="{Binding Ask, Source={StaticResource StaticSideEnums}}" />
    </toolkit:ListPicker>
    

    *此示例取自Using localized strings in a ListPicker populated from Enum中的答案

    【讨论】:

    • 好点,我会在上面解决这个问题。但是我得到了同样的错误。当我输入 {x: 时,Intellisense 只会给我 x:Null 作为选项。我很确定我只是没有正确引用某些东西......
    • 好吧,好吧,仅仅拥有一个常数似乎需要做很多工作。但是,好吧,如果是这样的话,那就是这样。谢谢。
    • 对于您的特定用例,也许样式会更好?然后,您可以一次将高度设置为您想要的任何值,在所有图像元素上使用该样式,并获得相同级别的“更改一次,应用到任何地方”。
    • @Shimmy,为什么?这是一个正确的答案,它被赞成并被接受,我看不出有什么理由应该将其更改为评论...
    • @Thomas,我的错误,我的意思是在一个完全不同的线程上写我的评论......评论已删除。
    猜你喜欢
    • 2011-03-28
    • 1970-01-01
    • 2018-06-07
    • 1970-01-01
    • 2015-05-23
    • 2016-08-22
    • 2019-05-02
    • 2012-06-12
    • 1970-01-01
    相关资源
    最近更新 更多