WPF在运行时重新调整边框大小

本文关键字:调整 边框 运行时 新调整 WPF | 更新日期: 2023-09-27 18:14:14

设置框架元素(边界在这种情况下)的宽度在XAML阻止我在运行时改变这个值吗?

我有一个包含边框的网格,该边框又包含一些其他控件。我有一个动画,它扩展了网格和边界的宽度和高度,从0开始增加值。

然后我在边框上方放置了一个按钮作为调整大小的辅助工具(它是一个无边框的窗口)。下面是一段应该重新调整边框大小的代码:

private void GridResize_Click(object sender, RoutedEventArgs e)
{
        startPoint = this.PointToScreen(Mouse.GetPosition(this));
        Mouse.Capture(GridResize);
        Resizing = true;
}
private void Window_MouseMove(object sender, MouseEventArgs e)
{
        if (Resizing)
        {
            FrameworkElement border = (FrameworkElement)LibraryBorder;
            //an arbitrary value for testing 
            border.Width += 20;
            LibraryBorder.InvalidateVisual();
        }
}

初始动画将边框宽度设置为1500。当调试两个事件都被注册和Window_MouseMove试图修改边界的宽度。但是它不会改变这个值——仍然是1500。我将元素强制转换为FrameworkElement,希望这将允许我修改宽度属性。我假设我的xaml值以某种方式覆盖了我的代码。有什么好办法吗。我想在我将所有动画都移动到代码中之前,我应该问一下是否有更好的方法(或者代码方法不会有什么不同!!)。

提前感谢您的回答

WPF在运行时重新调整边框大小

确保你的Storyboard没有FillBehavior HoldEnd,这是默认的。这将阻止您更改宽度。