【问题标题】:Define a Thickness using resources使用资源定义厚度
【发布时间】:2016-02-02 09:15:29
【问题描述】:

在一个 Windows UWP 应用项目中,我试图通过分配给它的 LeftTopRightBottom 属性来定义厚度:

<Setter Property="Margin">
    <Setter.Value>
        <Thickness Left="{StaticResource SomeDouble}"
                   Top="0"
                   Right="0"
                   Bottom="0" />
    </Setter.Value>
</Setter>

This answer 似乎暗示这在 WPF 中是可能的,但是,在我的 UWP 项目(以及 WinRT 应用程序)中,我收到以下错误:

XAML Thickness type cannot be constructed. 
In order to be constructed in XAML, a type cannot be abstract, interface, nested, generic 
or a struct, and must have a public default constructor.

有没有办法使用资源来定义厚度?

【问题讨论】:

    标签: xaml windows-runtime uwp


    【解决方案1】:

    你还是可以的。仅将System:Double 更改为x:Double。例如

    &lt;x:Double x:Key="SomeDouble"&gt;12&lt;/x:Double&gt;

    更新

    有趣的是,使用上面的 xaml 设计器可以正常显示,但无法编译...是的,它给出的错误与您显示的完全相同。

    所以我猜你必须在 xaml 中定义整个 Thickness

    <Thickness x:Key="Thickness1">12,0,0,0</Thickness>
    
    <Setter Property="Margin" Value="{StaticResource Thickness1}" />
    

    我这次运行了这个项目,是的,它成功了。 :)

    【讨论】:

    • 这正是我所做的,但它产生了我上面给出的错误......?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多