0

是否可以将参数发送到 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>

但是当我构造我的“多边形”时,我想给它一个坐标,该坐标取决于包含它的控件(如:this.Height、this.Width 等)或父控件中定义的其他控件。
是否可以?如何?

4

2 回答 2

2

如果应该引用另一个的属性是可以通过(with ) 轻松完成的依赖属性,否则您可能需要构建自己的来获取值一次(而不是绑定它)。BindingRelativeSourceMarkupExtension

于 2012-09-29T19:25:03.807 回答
2

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

于 2012-09-29T19:27:11.943 回答