2013-06-19 97 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

謝謝,但是這似乎是在重新調整大小後發生。知道何時隱藏以及何時顯示我的行爲不當控制是最佳選擇。 –

相關問題