Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF在运行时重新调整边框大小_C#_Wpf - Fatal编程技术网

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

C# WPF在运行时重新调整边框大小,c#,wpf,C#,Wpf,在XAML中设置框架元素(本例中为边框)宽度是否会阻止我在运行时更改此值 我有一个包含边框的网格,而边框又包含一些其他控件。我有一个动画,它将网格和边框的宽度和高度从0增加到0 然后,我在边框上方放置了一个按钮,作为重新调整大小的辅助工具(这是一个无边框窗口)。以下是应重新调整边框大小的代码片段: private void GridResize_Click(object sender, RoutedEventArgs e) { startPoint = this.PointTo

在XAML中设置框架元素(本例中为边框)宽度是否会阻止我在运行时更改此值

我有一个包含边框的网格,而边框又包含一些其他控件。我有一个动画,它将网格和边框的宽度和高度从0增加到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,希望这样可以修改width属性。我假设我的xaml值以某种方式覆盖了我的代码。有没有关于如何避开这个问题的想法。我想在我开始将我所有的动画转换成代码之前,我会问一下,以发现有更好的方法(或者代码方法不会有什么不同!!)


提前感谢您的回答

请确保您的
情节提要
没有默认设置。这将阻止您更改宽度。请参阅。

您的故事板是否有默认设置?这将阻止您更改宽度。看,我没有设置这些,也不知道它们是默认值。我会看一看-感谢指针如果我将FillBehavior设置为Stop,那么动画将运行,值将恢复到其原始状态。有没有办法从代码中释放HoldEnd?感谢LPL-如果你把你的建议作为答案,我会接受。似乎需要将我的FillBehavior设置为Stop,然后处理处理width属性的double动画的onCompleted事件-将其设置为最终值并再次打开属性进行编辑。我添加了我的注释作为答案。谢谢很高兴我能帮忙。