如何在WPF中更改Canvas元素的位置? [英] How to change location of Canvas element in WPF?
本文介绍了如何在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
和HorizontalAlignment
将它放在适当的位置但你应该查看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 theVerticalAlignment
andHorizontalAlignment
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屋!
查看全文