如何在WPF中更改Canvas元素的位置? [英] How to change location of Canvas element in WPF?

查看:1227
本文介绍了如何在WPF中更改Canvas元素的位置?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

下一个代码总是以我创建的Canvas元素为中心。

但我的目标是设置我自己的位置,例如0,0。

The next code always centers the Canvas element i create.
But my goal is to set my own location, for example, 0,0.

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();

        Canvas canvas = new Canvas();
        canvas.Height = 100;
        canvas.Width = 100;
        canvas.Background = Brushes.Black;

        Canvas.SetTop(canvas, 0);
        Canvas.SetLeft(canvas, 0);

        this.Content = canvas;
    }
}





注意:

如果你写的话这样做的代码,请用C#,而不是XAML。



下一个代码将位置设置为Left,Top。

但是我的目标是定义确切的位置。

如何定义像axb一样的确切位置?



Notes:
If you write a code of doing it, please do it in C#, not XAML.

The next code sets location to Left, Top.
But my goal is to define exact location.
How to define exact location like axb?

public MainWindow()
{
    InitializeComponent();

    Canvas canvas = new Canvas();
    canvas.Height = 100;
    canvas.Width = 100;
    canvas.Background = Brushes.Black;

    canvas.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
    canvas.VerticalAlignment = System.Windows.VerticalAlignment.Top;

    Canvas.SetTop(canvas, 20);  // doesn't work(
    Canvas.SetLeft(canvas, 20); // doesn't work(
    this.Content = canvas;
}

推荐答案

通常我会使用Canvas.SetTop和Canvas.SetLEft并填入适当的值:

Canvas.SetLeft(UIElement,Pos)



但是在元素中你应该设置 VerticalAlignment Horizo​​ntalAlignment 将它放在适当的位置但你应该查看Grid和Stackpanels并将画布放在那里。
Normally I'd use Canvas.SetTop, and Canvas.SetLEft and fill in the appropriate values:
Canvas.SetLeft(UIElement,Pos)

But in a element you should set the VerticalAlignment and HorizontalAlignment to place it at the appropriate place. But You should look into Grid and Stackpanels and place the canvas there instead.


解决方案是保证金 [ ^ ]:

Solution is Margin[^]:
public MainWindow()
{
    InitializeComponent();

    Canvas canvas = new Canvas();

    canvas.Height = 100;
    canvas.Width = 100;

    canvas.Background = Brushes.Black;

    canvas.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
    canvas.VerticalAlignment = System.Windows.VerticalAlignment.Top;
    canvas.Margin = new Thickness(10, 10, 50, 50);

    this.Content = canvas;
}


这篇关于如何在WPF中更改Canvas元素的位置?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆