在<ImageBrush/>
元素中,AlignmentX
和AlignmentY
属性的值分别为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 字是否意味着我无法将此属性设置为自定义属性?
如果这不能覆盖该属性,我该如何创建自己的属性?我认为这是一个附加属性,它可以被称为不同的东西,例如OffsetX
和OffsetY
将ImageBrush
设置为其父Shape
内的位置。我对SL文档如何做到这一点感到非常困惑(尽管在VB.NET中几乎没有例子 - 但即使是C#也不是那么透露)。
如果有可能,我将如何开始这个?
答案 0 :(得分:1)
让自己避免痛苦,只需使用一个值转换器即使这样也会有点棘手,因为你将不得不应用rendertransform或其他东西来对你的枚举做出反应。
您也可以编写自己的面板,这可能是个更好的主意。
这里有一些不同的问题需要面对,创建附加属性,验证枚举,让enum按照你想要的方式设置它。
您还必须了解MeasureOverride和ArrangeOverride
如果你无法自助...... Look Here