WPF - 如何动态移动 UIElement

问题描述 投票:0回答:1

我在网格内有一个椭圆,我想移动椭圆。

我曾尝试使用

RenderTransform.Transform()
TransformPoint()
但什么也没发生,我尝试设置对椭圆和网格的引用,但在这两种情况下我都没有移动也没有异常。

我应该用什么来移动我的场景中的椭圆?

编辑:在 Xamarin 上,我使用

TranslationY
属性,它允许我做我想做的事,文档告诉我使用
TranslateTransform
但我不明白如何使用它。

c# wpf transform uielement
1个回答
0
投票

Ellipse
放在
Canvas
中,并使用附加的
Canvas.Left
Canvas.Top
属性控制其位置,或者使用您当前的方法,使用
Margin
属性将其定位在
Grid
中。

这是一个例子。

private void Button_Click(object sender, RoutedEventArgs e)
{
    var margin = ellipse.Margin;
    ellipse.Margin = new Thickness(margin.Left, margin.Top + 10, margin.Right, margin.Bottom);
}

XAML:

<Grid x:Name="GrFrame">
    <Grid.RowDefinitions>
        <RowDefinition Height="*" />
        <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>
    <Ellipse x:Name="ellipse" Width="100" Height="100" Fill="Red" VerticalAlignment="Center" HorizontalAlignment="Center" />
    <Button Grid.Row="1" Content="Move down" Click="Button_Click" />
</Grid>
© www.soinside.com 2019 - 2024. All rights reserved.