C# WPF:BindingExpression生成的值对目标无效

C# WPF:BindingExpression生成的值对目标无效,c#,wpf,C#,Wpf,无法理解这一点,我正在尝试使此模板尽可能多功能。我在尝试将文本块居中时遇到以下错误,水平对齐不起作用 System.Windows.Data错误:5:BindingExpression生成的值为 对目标属性无效。;Value='0' BindingExpression:Path=ActualWidth;DataItem='Grid'(Name='PathGrid'); 目标元素是“TextBlock”(Name='PathPercentage');目标属性 是“FontSize”(类型为“Dou

无法理解这一点,我正在尝试使此模板尽可能多功能。我在尝试将文本块居中时遇到以下错误,水平对齐不起作用

System.Windows.Data错误:5:BindingExpression生成的值为 对目标属性无效。;Value='0' BindingExpression:Path=ActualWidth;DataItem='Grid'(Name='PathGrid'); 目标元素是“TextBlock”(Name='PathPercentage');目标属性 是“FontSize”(类型为“Double”)

System.Windows.Data错误:5:BindingExpression生成的值为 对目标属性无效。;值='-6-6-6-6' MultiBindingExpression:目标元素为“TextBlock” (Name='PathPercentage');目标属性为“Margin”(类型 ‘厚度’)

System.Windows.Data错误:5:BindingExpression生成的值为 对目标属性无效。;值='-17-17-17-17' MultiBindingExpression:目标元素为“TextBlock” (Name='PathPercentage');目标属性为“Margin”(类型 ‘厚度’)

System.Windows.Data错误:5:BindingExpression生成的值为 对目标属性无效。;Value='83' MultiBindingExpression:目标元素为“TextBlock” (Name='PathPercentage');目标属性为“Margin”(类型 ‘厚度’)

这是带有绑定的ControlTemplate

<Grid x:Name="PathGrid" Margin="2" Width="200">
                        <Canvas>
                            <TextBlock x:Name="PathPercentage" Text="{Binding RelativeSource={RelativeSource TemplatedParent},Path=Value}"
                                       Foreground="White"
                                       FontSize="{Binding ElementName=PathGrid, Path=ActualWidth, Converter={StaticResource SizeTextOnParent}}">
                                <TextBlock.Margin>
                                    <MultiBinding Converter="{StaticResource CenterElement}">
                                        <Binding ElementName="PathGrid" Path="ActualWidth"/>
                                        <Binding ElementName="PathPercentage" Path="FontSize"/>
                                    </MultiBinding>
                                </TextBlock.Margin>
                            </TextBlock>
                            <TextBlock Text="{Binding ElementName=PathPercentage, Path=Margin}" />
                            <Ellipse Fill="Transparent" 
                                 Stroke="#434953" 
                                 StrokeThickness="3" 
                                 Width="{Binding ElementName=PathGrid, Path=ActualWidth}" 
                                 Height="{Binding ElementName=PathGrid, Path=ActualWidth}" />

呜呜,终于修好了。只需确保它返回type
Thickness
。我假设它应该作为一种类型返回
Margin
,这就是为什么我很难找到它

double t = Math.Round(((parentWidth / 2) - (fontSize / 2)), 0);
            Thickness margin = new Thickness(t, t, t, t);

            return margin;
double t = Math.Round(((parentWidth / 2) - (fontSize / 2)), 0);
            Thickness margin = new Thickness(t, t, t, t);

            return margin;