将参数发送到XAML中定义的控件

时间:2012-09-29 19:20:58

标签: wpf xaml

是否可以将参数发送到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等...)或父控件中定义的其他控件。
可能吗?如何?

2 个答案:

答案 0 :(得分:2)

如果应该引用其他属性的属性是dependency property,可以通过BindingRelativeSource)轻松完成,否则您可能需要构建自己的MarkupExtension获取值一次(而不是绑定它)。

答案 1 :(得分:2)

如果您只想使用简单值或绑定到所有者控件的自定义属性,请使用 H.B。建议的依赖项属性机制。但是,您可能需要将另一种类型的值转换为适当的值(即PointCollection)。在这种情况下,我建议使用绑定和值转换器来完成它。有关价值转换器的更多信息,请访问:http://msdn.microsoft.com/en-us/library/system.windows.data.ivalueconverter.aspx