我目前正在使用WPF .NET 3.5的开发,使用IKRIV的数学转换器,我决定在我的设计中进行数学任务:

<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”。

谢谢。

有帮助吗?

解决方案

Yes, there is an error in that line. Please give some more information about where is the button you refer to in that binding.

If it's the control that you create template for, you can try to remove the line:

<!-- this line causes an error -->
<Binding Path="Object" ElementName="{TemplateBinding Property=Button.Height}" />

and replace it with a new one:

<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="Height" />
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top