如何在标签上设置目标属性?

Mar*_*ius 17 wpf

以下代码:

    <TextBlock Name="foo"></TextBlock>
    <Label Target="foo">_Delta pressure</Label>
Run Code Online (Sandbox Code Playgroud)

生成以下设计时错误:

错误1无法将值'foo'分配给属性'Target'.属性'UIElement'的属性'Target'不能指定为字符串.C:\ Programming\WpfCustomPlot\SPT.Olga.Plot.Custom\PumpCurves\View\RatedValuesView.xaml 65 45 SPT.Olga.Plot.Custom

以下运行时错误:

'UIElement'类型没有公共TypeConverter类.第65行位置错误45.

我究竟做错了什么?

Ken*_*art 32

Target属性采用元素本身,而不是字符串,因此您需要:

<TextBlock Name="foo"></TextBlock>
<Label Target="{Binding ElementName=foo}">_Delta pressure</Label>
Run Code Online (Sandbox Code Playgroud)


Cpt*_*bby 5

似乎在.NET Framework 4.0版中,此属性已更改,因此它只能将元素的名称作为字符串.这是通过使用a 来处理转换来完成Label.Target属性来完成的.TypeConverterAttributeNameReferenceConverterStringUIElement

有关详细信息,请查看以下文档:

https://msdn.microsoft.com/en-us/library/system.windows.controls.label.target(v=vs.100).aspx

https://msdn.microsoft.com/en-us/library/system.windows.markup.namereferenceconverter(v=vs.100).aspx

PS:请注意,通常认为使用该x:Name属性在XAML中指定元素名称而不是Name属性是更好的做法.