1
我一直堅持在WPF中完成一個項目,而且我在WPF中唯一的體驗就是我從上網開始就已經從互聯網獲得的內容(大多數是SO)。所以如果我的問題看起來很簡單,或者即使是一個暗淡的機智,答案似乎也很明顯,那麼我只能道歉並懇求你的耐心!在主窗口中動態調整畫布大小?
這裏是constitutues我的主窗口中的XAML:
<Window>
<Grid Width="Auto" Height="Auto">
<StackPanel>
<DockPanel Margin="2">
<StackPanel Orientation="Horizontal">
<Border Name="leftPane" Height="Auto" CornerRadius="6" BorderBrush="Gray" Background="LightGray" BorderThickness="2" Padding="8">
<!-- Various controls here for the "left pane" -->
</Border>
<Separator BorderThickness="1" Margin="2"></Separator>
<Border Name="rightPane" Height="Auto" CornerRadius="6" BorderBrush="Gray" BorderThickness="2" Padding="0" Background="#FFF0F0F0">
<Canvas Name="canvasMain" HorizontalAlignment="Left" Margin="0,0,0,0" VerticalAlignment="Top" Width="Auto" Height="Auto">
<!-- I need to resize the rightPane and the canvasMain when the user manually resizes the main window -->
</Canvas>
</Border>
</StackPanel>
</DockPanel>
</StackPanel>
</Grid>
</Window>
窗口更多或更少看起來像這樣:
=================================================================
- -
- ------------- -------------------------------------------- -
- | Left Pane | | Right Pane | -
- | width:100 | | Need to expand width and height when | -
- | | | ...the main window is resized by the | -
- | | | ...user | -
- | | | | -
- | | | | -
- | | | | -
- | | | | -
- ------------- -------------------------------------------- -
=================================================================
我的第一個傾向是簡單地實現了一些邏輯主窗口的SizeChanged事件。但經過一番Google搜索之後,我遇到了關於附加行爲和屬性觸發器和事件觸發器的主題,這反過來讓我想到,也許SizeChanged事件不是最好的遵循路線。
所以,簡而言之,什麼是動態調整窗口內容的正確方式?
嗯,這可行,但我在畫布上的背景已不再起作用。我在SO上找到了一些代碼(在其他地方)(http://stackoverflow.com/questions/6434284/how-to-draw-gridline-on-wpf-canvas),在畫布的背景上繪製矩形(給它基本上是一個網格),它運作得很好;但是,它不再適應這些最近的變化。有任何想法嗎? – Jagd
@Jagd我不知道該死的人,用當前的XAML創建一個新問題,什麼是和不工作。 –
是的,這只是在黑暗中拍攝而已。我會再與它一起猴子,看看我不知道。謝謝。 – Jagd