【问题标题】:Adding Enumeration Value to Silverlight Attribute/Property将枚举值添加到 Silverlight 属性/属性
【发布时间】:2010-06-07 16:04:10
【问题描述】:

<ImageBrush/> 元素中,AlignmentXAlignmentY 属性的值分别为 Left/Center/Right 和 Top/Center/Bottom。

我想要做的是设置我自己的值,例如,AlignmentX 作为一个值或另一个枚举,如 AlignmentX="HalfCenter" 其中HalfLeft 等于我自己的值(中间和左之间) .例如,如果我有这个:

    <Rectangle Canvas.Left="0" Stroke="LimeGreen" StrokeThickness="16" Canvas.Top="0" 
               Width="400" Height="400" >
        <Rectangle.Fill>
            <ImageBrush ImageSource="newone.jpg" 
                       Stretch="None" AlignmentX="HalfLeft" AlignmentY="Top"  />
        </Rectangle.Fill>
    </Rectangle>

我不知道这是一个依赖属性、附加属性还是其他(还不知道如何创建它们)。在帮助文件中,它在TileBrush.AlignmentXProperty 字段中显示:Public Shared ReadOnly AlignmentXProperty As DependencyProperty。这里的 ReadOnly 字是否表示我不能将此属性设置为自定义属性?

如果这不能覆盖该属性,我该如何创建自己的?我认为这是一个附加属性,它可以被称为不同的东西,比如OffsetXOffsetYImageBrush 设置为其父Shape 内的位置。我对 SL 文档中关于我将如何做到这一点感到非常困惑(VB.NET 中几乎没有示例 - 但即使是 C# 也不是那么具有启发性)。

如果可能,我将如何开始?

【问题讨论】:

    标签: wpf silverlight dependency-properties attached-properties


    【解决方案1】:

    省去你的痛苦,只需使用一个值转换器,即使这样也会有点棘手,因为你将不得不应用渲染转换或其他东西来对你的枚举做出反应。

    您也可以编写自己的面板,这可能是一个更好的主意。

    您需要面对几个不同的问题,创建附加属性,验证枚举,让枚举在设置时执行您希望它执行的操作。

    您还必须了解 MeasureOverride 和 ArrangeOverride

    如果你无法自拔……Look Here

    【讨论】:

    • RenderTransform 的好建议,甚至没有想到这一点。但这正是我所需要的。
    猜你喜欢
    • 2020-05-11
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 2022-12-14
    • 1970-01-01
    • 2019-07-05
    • 2015-03-27
    相关资源
    最近更新 更多