#c# #wpf #wpf-controls
#c# #wpf #wpf-элементы управления
Вопрос:
учитывая следующий код 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? В прошлом я создал несколько пользовательских контроллеров, создал интерфейс к объектам и извлек информацию на основе имени пути. В моем текущем случае я не могу использовать этот подход.
Ответ №1:
Не уверен, понимаю ли я вопрос, но не можете ли вы использовать
((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>
Затем вы можете перейти прямо к своим путям по имени.