2013-07-16 64 views
1

在我的WPF項目中,我有一個Canvas其中我做了一些圖紙。下面的代碼窗口:WPF窗口調整大小和ActualWidth/ActualHeight值

<Window x:Name="PropertyDefinition_Window" x:Class="PushOverStraus7.PropertyDefinitionWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="PropertyDefinitionWindow" Height="360" Width="730" Loaded="Window_Loaded"> 
<Grid> 
    <TreeView SelectedItemChanged="Treeview_PropertyDefinition_SelectedItemChanged"> 
     <TreeViewItem IsExpanded="True"> 
      <TreeViewItem /> 
     </TreeViewItem> 
     <TreeViewItem> 
      <TreeViewItem"/> 
     </TreeViewItem> 
    </TreeView> 
    <Canvas x:Name="Canvas_LongitudinalBarRectanglePage" HorizontalAlignment="Left" Height="251" Margin="255,10,0,0" VerticalAlignment="Top" Width="285" Background="Black">    
    </Canvas> 
    <Button x:Name="NewButton" Content="Nuovo" HorizontalAlignment="Left" Margin="22,277,0,0" VerticalAlignment="Top" Width="45" Click="NewButton_Click"/> 
    <Button x:Name="DuplicateButton" Content="Duplica" HorizontalAlignment="Left" Margin="85,277,0,0" VerticalAlignment="Top" Width="45"/> 

</Grid> 

我想的是,調整窗口大小時,Canvas大小也會相應改變。然後,我需要調整Canvas的ActualWidthActualHeight以將它們用於繪製運動。 如何獲得Canvas的自動調整大小以及如何獲取上述值? 感謝您的幫助

編輯: 我已經改變了一個問題,問

+0

請同時顯示設置幀內容的代碼。爲什麼你需要一個框架呢?你似乎沒有使用幀導航。 – Clemens

+0

框架顯示不太好用,因爲它不會影響畫布行爲。正如你可以在我的編輯中看到的一樣,我從頁面(因此從框架中移除了畫布),因此畫布顯然在窗口內部,並且具有定義的寬度和高度。 – FrancescoDS

+0

也許你會減少你的問題。刪除那些不再相關的東西,請添加相關的代碼隱藏部分。 – Clemens

回答

0

用下面的XAML畫布將自動調整窗口大小改變時。

<Window ...> 
    <Frame> 
     <Frame.Content> 
      <Page> 
       <Canvas> 
        ... 
       </Canvas> 
      </Page> 
     </Frame.Content> 
    </Frame> 
</Window> 
+0

它'框架'繼承'窗口'的大小?或兩者? –

+0

我無法測試它,因爲我有兩個不同的XAML來管理,一個用於窗口,另一個用於頁面...我通過代碼設置框架內容,因爲它以編程方式更改,選擇樹狀視圖中的項目。所以我不能使用高於 – FrancescoDS

+0

的XAML那麼爲什麼不在你的問題中發佈你的代碼的相關部分? – Clemens