如何从 XAML 对象获取 C# 中的几何信息?

发布于 2024-12-09 15:17:32 字数 1105 浏览 0 评论 0原文

给出以下 XAML 代码:

<Canvas Name="MainView">

    <Canvas Name="TriangleElement" Width="50" Height="50" Canvas.Left="110" Canvas.Top="100">
        <Canvas.RenderTransform>
            <RotateTransform CenterX="25" CenterY="25" Angle="0" />
        </Canvas.RenderTransform>
        <Path Stroke="#FF009600" StrokeThickness="1" Fill="#FF68E168">
            <Path.Data>
                M 0,0 L 50,0 50,50 Z
            </Path.Data>
        </Path>
    </Canvas>

    <Canvas Name="SquareElement" Width="50" Height="50" Canvas.Left="170" Canvas.Top="100">
        <Canvas.RenderTransform>
            <RotateTransform CenterX="25" CenterY="25" Angle="0" />
        </Canvas.RenderTransform>
        <Path Stroke="#FF005DFF" StrokeThickness="1" Fill="#FF98D0F8">
            <Path.Data>M 0,0 L 50,0 50,50 0,50 Z</Path.Data>
        </Path>
    </Canvas>

</Canvas>

如何在 C# 中获取路径数据/几何信息而不在 XAML 中命名它?过去,我创建了几个用户控件,创建了对象的接口,并根据路径名称提取信息。在我目前的情况下,我无法使用这种方法。

given the following XAML code:

<Canvas Name="MainView">

    <Canvas Name="TriangleElement" Width="50" Height="50" Canvas.Left="110" Canvas.Top="100">
        <Canvas.RenderTransform>
            <RotateTransform CenterX="25" CenterY="25" Angle="0" />
        </Canvas.RenderTransform>
        <Path Stroke="#FF009600" StrokeThickness="1" Fill="#FF68E168">
            <Path.Data>
                M 0,0 L 50,0 50,50 Z
            </Path.Data>
        </Path>
    </Canvas>

    <Canvas Name="SquareElement" Width="50" Height="50" Canvas.Left="170" Canvas.Top="100">
        <Canvas.RenderTransform>
            <RotateTransform CenterX="25" CenterY="25" Angle="0" />
        </Canvas.RenderTransform>
        <Path Stroke="#FF005DFF" StrokeThickness="1" Fill="#FF98D0F8">
            <Path.Data>M 0,0 L 50,0 50,50 0,50 Z</Path.Data>
        </Path>
    </Canvas>

</Canvas>

How can I get the path data / geometry information in c# without naming it in the XAML? In the past I have created several UserControl's, created an interface to the objects, and pulled the info based on the Path name. In my current case I cannot use this approach.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

脱离于你 2024-12-16 15:17:33

不确定我是否理解这个问题,但是你不能使用

((Path)TriangleElement.Children[0]).Data

那些 Canvas 元素的用途吗?他们似乎什么也没做。

为什么不呢:

<Path Name="SquareElement" Width="50" Height="50" Stroke="#FF005DFF" StrokeThickness="1" Fill="#FF98D0F8">
    <Path.RenderTransform>
        <RotateTransform CenterX="25" CenterY="25" Angle="60" />
    </Path.RenderTransform>
    <Path.Data>M 0,0 L 50,0 50,50 0,50 Z</Path.Data>
</Path>

然后您就可以通过名称直接进入您的路径。

Not sure if I understand the question, but can't you use

((Path)TriangleElement.Children[0]).Data

And what are those Canvas elements for? They don't seem to be doing anything.

Why not:

<Path Name="SquareElement" Width="50" Height="50" Stroke="#FF005DFF" StrokeThickness="1" Fill="#FF98D0F8">
    <Path.RenderTransform>
        <RotateTransform CenterX="25" CenterY="25" Angle="60" />
    </Path.RenderTransform>
    <Path.Data>M 0,0 L 50,0 50,50 0,50 Z</Path.Data>
</Path>

Then you can get straight to your paths by name.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文