5

我有一个作为给定控件ControlTemplate上的“气泡”弹出窗口。AdornerLayer

它工作正常,但我需要能够计算它应该显示的位置(中间/底部)。

代替:

<Path Stroke="Black" Fill="Black" Data="M 15 20 L 15 0 33 20" Margin="0 1 0 0"/>

我正在寻找(显然这不起作用,但它说明了我想要完成的事情:

<Path Stroke="Black" Fill="Black" Data="M {TemplateBinding Left} 20 L 15 0 33 20"/>

这可以用 a 来完成ValueConverter吗?由于某种原因,我只是无法想象解决方案。我也对替代品持开放态度。

感谢您阅读,如果我可以提供更多信息,请询问。

4

1 回答 1

10

如果您想要一个可用于将字符串转换为路径数据的值转换器,您可能想尝试我不久前写的通用值转换器。

或者,要绑定到单个属性,您必须通过将各种几何对象添加到 XAML 中来扩展几何,而不是使用字符串速记。例如 ...

<Path Stroke="Black" StrokeThickness="1">
  <Path.Data>
    <PathGeometry>
      <PathGeometry.Figures>
        <PathFigureCollection>
          <PathFigure IsClosed="True" StartPoint="10,100">
            <PathFigure.Segments>
              <PathSegmentCollection>
                <LineSegment Point="{Binding MyPropertyPath}" />
                <LineSegment Point="100,50" />
              </PathSegmentCollection>
            </PathFigure.Segments>
          </PathFigure>
        </PathFigureCollection>
      </PathGeometry.Figures>
    </PathGeometry>
  </Path.Data>
</Path>
于 2013-01-05T07:50:29.277 回答