2013-06-19 71 views
0

我想在窗口调整大小时隐藏一个控件,因为它的行为不正确。然而在WPF中似乎没有任何OnBeginResize-事件。 任何建议如何在WPF中实现这一点?隐藏控件,同时在wpf中调整窗口大小

+0

存在WM_RESIZE事件 – Sayse

+0

你为什么不尝试做使其行为对吗?^^ –

+0

@FlorianGl我得到它的正确行为,现在,它变得疯狂具有定义(前,左,右多个锚定,底部)所有一次> u < –

回答

1

绑定属性(法定)到你的窗口的宽度,所以当宽度改变这个属性的setter方法被调用,此setter内,你可以有隐藏你的控制逻辑。

<Window x:Class="SiemensEnergy.Frw.Main.Client.UI.Views.MainWindowView"   
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:viewmodel="clr-namespace:SiemensEnergy.Frw.Main.Client.UI.ViewModels" 
     Title="MainWindow" mc:Ignorable="d" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     Width="{Binding WindowWidthProperty, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 
</Window> 
+0

非常聪明的解决方案,谢谢。 –

+0

等等!,我不应该绑定ActualWidth和ActualHeight吗? –

+0

你应该为这个宽度属性设置一个默认值(从属性getter返回一些值),这将是第一次加载时窗口的宽度。稍后,当你改变窗口宽度时,setter将被调用。 – Kurubaran

1

Window_SizeChanged?

<Window x:Class="TestControls.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:m="clr-namespace:WFControls;assembly=WFControls" 
     xmlns:ff="clr-namespace:WFControls.Fernfracht;assembly=WFControls" 
     Title="MainWindow" Height="350" Width="525" SizeChanged="Window_SizeChanged"> 
    <DockPanel> 

    </DockPanel> 
</Window> 
+0

谢谢,但是这似乎是在重新调整大小后发生。知道何时隐藏以及何时显示我的行为不当控制是最佳选择。 –

相关问题