你知道在采取某种行动后(例如按下按钮)给元素分配新位置的方法吗?
让我们假设在我的WPF中我有一个名为“Windajo”的Rectangle,我想将其Y位置更改为actual_Y_position + 10.
我不知道如何获得实际位置和唯一功能,我设法改变位置是Margin
。很多人都在考虑Canvas
,但我无法让它发挥作用。
我设法用Margin改变对象位置,但是(我猜)距离MainWindow边界的距离并使用它有点烦人。
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);
}
如果无法进入最后位置,有没有办法从厚度函数中获取一个实际值?例如,我想从Thickness (85, i, 80, 0)
分配“85”。一些变量。怎么做?
我想在代码中执行此操作,如上例所示。
我非常感谢您提供的任何帮助:)
答案 0 :(得分:1)
您可以采用这样的实际值:
Windajo.Margin.Left
Windajo.Margin.Right
对此:
Windajo.Margin = new Thickness(85, Windajo.Margin.Top + 10, 80, 0);
答案 1 :(得分:0)
您可以访问厚度结构的各个组件,如下所示:
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,你需要将Top margin减少10(如果它是Top Aligned)或者如果它是Bottom Aligned则将Bottom margin增加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