C# WPF更改对象的位置
您知道在某种操作(例如按buton键)后,如何为元件分配新位置吗 假设在我的WPF中有一个名为“Windajo”的矩形,我想将其Y位置更改为实际Y位置+10 我一点也不知道如何获得实际头寸,我唯一能改变头寸的功能是C# WPF更改对象的位置,c#,wpf,position,C#,Wpf,Position,您知道在某种操作(例如按buton键)后,如何为元件分配新位置吗 假设在我的WPF中有一个名为“Windajo”的矩形,我想将其Y位置更改为实际Y位置+10 我一点也不知道如何获得实际头寸,我唯一能改变头寸的功能是边距。很多人都在参考画布,但我无法让它工作 我设法用边距改变了对象的位置,但它(我猜)离主窗口边框有一段距离,使用它有点烦人 private async void button_Click(object sender, RoutedEventArgs e) {
边距
。很多人都在参考画布
,但我无法让它工作
我设法用边距改变了对象的位置,但它(我猜)离主窗口边框有一段距离,使用它有点烦人
private async void button_Click(object sender, RoutedEventArgs e)
{
int i = 300;
do
{
Windajo.Margin = new Thickness(85, i, 80, 0);
await Task.Delay(500);
i = i - 20;
} while (i > 100);
}
如果无法参照最后一个位置,是否有任何方法可以从厚度函数中获得实际值?例如,我想从厚度(85,I,80,0)
中指定“85”。对一些变量。如何做到这一点
我想在代码内部完成它,就像上面的例子一样
我非常感谢您提供的任何帮助:)您可以访问厚度结构的各个组件,如下所示:
Windajo.Margin = new Thickness(85, i, 80, 0);
Thickness t = Windajo.Margin;
double left = t.Left;
double top = t.Top;
double right = t.Right;
double bottom = t.Bottom;
如果要将Y增加10,则需要将顶部边距减少10(如果顶部对齐),或将底部边距增加10(如果底部对齐):
Windajo.Margin = new Thickness(85, i - 10, 80, 0); // If Top-Aligned
// -- OR --
Windajo.Margin = new Thickness(85, i - 10, 80, 0); // If Bottom-Aligned
您可以按如下方式获取实际值:
Windajo.Margin.Left
Windajo.Margin.Right
为此:
Windajo.Margin = new Thickness(85, Windajo.Margin.Top + 10, 80, 0);
绝对定位时不要使用边距。相反,将矩形放入画布,并设置其
Canvas.Left
和Canvas.Top
附加属性。在代码隐藏中,您将使用静态方法Canvas.SetLeft
和Canvas.SetTop
,比如Canvas.SetTop(Windajo,Canvas.GetTop(Windajo)-20)代码>。