是否可以将参数发送到XAML中定义的控件?
例如,如果我有这个XAML:
<UserControl x:Class="Controls.MyControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d">
<UserControl.Resources>
<ResourceDictionary Source="..\Colors.xaml" />
</UserControl.Resources>
<Grid>
<Polygon x:Name="plgPoly" Points="0,0 100,0 100,100 0,0" />
</Grid>
</UserControl>
但是当我构建我的&#34; Polygon&#34;我想给它坐标,它取决于包含它的控件(如:this.Height,this.Width等...)或父控件中定义的其他控件。
可能吗?如何?
答案 0 :(得分:2)
如果应该引用其他属性的属性是dependency property,可以通过Binding
(RelativeSource
)轻松完成,否则您可能需要构建自己的MarkupExtension
获取值一次(而不是绑定它)。
答案 1 :(得分:2)
如果您只想使用简单值或绑定到所有者控件的自定义属性,请使用 H.B。建议的依赖项属性机制。但是,您可能需要将另一种类型的值转换为适当的值(即PointCollection
)。在这种情况下,我建议使用绑定和值转换器来完成它。有关价值转换器的更多信息,请访问:http://msdn.microsoft.com/en-us/library/system.windows.data.ivalueconverter.aspx。