WPF - 向左展开窗口

Ome*_*Mor 7 wpf resize expander

我有一个带可扩展面板(via Expander)的WPF窗口.面板位于窗口的左侧,展开后窗口会增大以适应内容.

默认情况下,窗口固定在左上角,因此我的窗口向右移动.我希望窗户向左侧增长.

我试图在Window.SizeChanged事件中做以下事情:

private void onWindowSizeChanged(object sender, SizeChangedEventArgs e)
{
    Left -= (e.NewSize.Width - e.PreviousSize.Width)
}
Run Code Online (Sandbox Code Playgroud)

它有效,但增长不稳定,我想找到一个更顺畅的解决方案.

Ome*_*Mor 4

我设法使用一个简单的解决方案克服了这个问题:隐藏和显示。

这是代码:

protected override void OnRenderSizeChanged(SizeChangeInfo sizeInfo)
{
    if (!sizeInfo.WidthChanged)
    {
        base.OnRenderSizeChanged(sizeInfo);
        return;
    }
    Hide();
    base.OnRenderSizeChanged(sizeInfo);
    Left -= (sizeInfo.NewSize.Width - sizeInfo.PreviousSize.Width);
    Show();
}
Run Code Online (Sandbox Code Playgroud)

我用Window.SizeChanged的覆盖替换了 的事件处理程序FrameworkElement.OnRenderSizeChanged