gpt4 book ai didi

wpf - 绑定(bind) RectangleGeometry.Rect 不显示矩形

转载 作者:行者123 更新时间:2023-12-01 23:30:10 25 4
gpt4 key购买 nike

我在尝试绑定(bind)到 RectangleGeometry 的 Rect 属性时遇到问题。这里的基本想法是,我尝试绑定(bind)剪辑蒙版来控制伪图表对象的可视化高度。这是 XAML:

  <Path x:Name="_value" Fill="{DynamicResource PositiveColorBrush}" Data="F1 M10,55 C10,57.75 7.75,60 5,60 2.25,60 0,57.75 0,55 L0,5 C0,2.25 2.25,0 5,0 7.75,0 10,2.25 10,5 L10,55 z">
<Path.Clip>
<!-- SECOND NUMBER CONTROLS THE HEIGHT : SCALE OF 0-60 REVERSED -->
<!--<RectangleGeometry Rect="0,22.82,10,60"/>-->
<RectangleGeometry
Rect="{Binding Score, Converter={StaticResource ChartBarScoreConverter}}" />
</Path.Clip>
</Path>

注意那里注释的 RectangleGeometry。当我取消注释并注释掉绑定(bind)的 RectangleGeometry 时,效果非常好。当然,当分数改变时,它的大小不会改变。

现在,如果我在 ChartBarScoreConverter 中放置一个断点,我会得到正确的值并返回一个新的 RectangleGeometry 对象,其规范与注释掉的对象完全相同。这是转换器的简短代码:

  ...
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
RectangleGeometry output = new RectangleGeometry();
double score = 60; //0
if (Common.IsNumeric(value))
{
score = System.Convert.ToDouble(value) * .60;//scale is 0-60
score = 60 - score;//reversed (=
}
output.Rect = new Rect(0, score, 10, 60);
return output;
}
...

当应用程序运行时,它根本不显示剪辑。正如我所说,我在转换器中放置了一个断点,并验证了它是否被调用以及是否返回了正确大小的对象......但它只是没有出现在 View 中。

有什么想法吗?

谢谢,保罗

最佳答案

您的转换器返回一个 RectangleGeometry,然后您尝试将其分配给 RectangleGeometry 上 Rect 类型的 Rect 属性。摆脱转换器中的“输出”对象,只返回 Rect 本身。

关于wpf - 绑定(bind) RectangleGeometry.Rect 不显示矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3305271/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com