我目前正在使用WPF .NET 3.5进行开发,使用ikriv的Math Converter,我决定在我的设计中做一个数学任务:
<ControlTemplate x:Key="RectangleTemplate">
<Grid Background="Transparent">
<Rectangle x:Name="Shape" Stroke="#d69e31" Fill="{StaticResource YellowGradientBrush}">
<!-- Create a rectangle that applies Cornering accoding to it's (in form) indicated height -->
<Rectangle.RadiusX>
<MultiBinding Converter="{StaticResource MathConverter}" ConverterParameter="x/2.5">
<!-- Error occurs in the line below -->
<Binding Path="Object" ElementName="{TemplateBinding Property=Button.Height}" />
</MultiBinding>
</Rectangle.RadiusX>
<Rectangle.RadiusY>
<MultiBinding Converter="{StaticResource MathConverter}" ConverterParameter="x/2.5">
<!-- Error occurs in the line below -->
<TemplateBinding Property="Button.Height" />
</MultiBinding>
</Rectangle.RadiusY>
</Rectangle>
</Grid>
</ControlTemplate>
+例外协助说:
InnerException:System.InvalidCastException
Message =无法将“System.Windows.TemplateBindingExpression”类型的对象强制转换为“System.String”。
感谢。
答案 0 :(得分:2)
是的,该行有错误。请提供一些有关您在该绑定中引用的按钮位置的更多信息。
如果是您为其创建模板的控件,则可以尝试删除该行:
<!-- this line causes an error -->
<Binding Path="Object" ElementName="{TemplateBinding Property=Button.Height}" />
并将其换成新的:
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="Height" />