Я пытаюсь получить позиции элементов управления (кнопок), но он продолжает возвращать {0; 0}.Я уверен, что этому есть объяснение, но я не могу понять, почему это происходит.
Я хочу положение элемента управления относительно окна или определенного контейнера.Мои кнопки расположены в другой сетке.Взятие полей этих кнопок дало бы 0,0, поскольку они все находятся внутри ячеек сетки.
Что я пробовал:
- var point = btnTest.TransformToAncestor(mainGrid).Transform(new Point());
- UIElement container = VisualTreeHelper.GetParent(btnTest) as UIElement;
Point relativeLocation = btnTest.TranslatePoint(new Point(0, 0), mainGrid);
Я пробовал это с сеткой в качестве родителя ис холстом.Все, что я пытаюсь, дает мне {0,0}.Когда я изменяю параметры new Point
, положение меняется.Он остается таким же, как параметры.
Небольшая часть моего XAML:
<Grid x:Name="mainGrid">
<Grid Name="buttonGrid" Margin="105,64,98.4,97.8">
<Grid.RowDefinitions>
<RowDefinition Height="25"/>
<RowDefinition Height="25"/>
<RowDefinition Height="25"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="50"/>
<ColumnDefinition Width="50"/>
<ColumnDefinition Width="50"/>
</Grid.ColumnDefinitions>
<Button x:Name="btnTest" Grid.Row="0" Grid.Column="0" Content="Button" HorizontalAlignment="Left" Margin="0,0,0,0" VerticalAlignment="Top" Width="26" Height="29"/>
<Button x:Name="btnTest2" Grid.Row="1" Grid.Column="1" Content="Button" HorizontalAlignment="Left" Margin="0,0,0,0" VerticalAlignment="Top" Width="26" Height="29"/>
</Grid>
</Grid>