2015-08-19 73 views
1

我剛開始使用WPF,因此請就任何簡單的錯誤承擔責任。將網格寬度綁定到ParentGrid.Width - ParentGridBorder.BorderThickness

正如標題所述,我想將網格的寬度綁定到基本上它的ParentGrid的InnerWidth。因此,對於一個代碼示例(非常精簡):

<Grid Name="ParentGrid" Width="300"> 
    <Border Name="ParentGridBorder Thickness="2" Width="{Binding Width, ElementName=ParentGrid}" /> 
    <Grid Name="ChildGrid" Width="{**? ParentWidth - ParentBorderThickness ?**}"> 
     .... 
    </Grid> 
</Grid> 

我使用Visual Studio 2012,WPF,和C#代碼隱藏(我假設一個相當標準的設置)。任何幫助深表感謝。

附錄:這是一個糟糕的,誤導的方法,因爲我的WPF新手。選定的答案指出了我正在嘗試創建解決方法的大小問題。

回答

1

我會建議你忽略Grid.Border的想法,而是增加一個邊緣到第二個網格。除非您因任何其他原因需要邊界,否則這是要走的路。

<Grid Name="ParentGrid" Width="300"> 
    <Grid Name="ChildGrid" Margin="10"> 
    .... 
    </Grid> 
</Grid> 

除非另有明確說明,網格內的對象自然適合其父代的尺寸。

Note the child grid maintains its size

注意孩子電網保持其大小

+0

除了需要有一個邊界,如果我刪除寬度,只是有一個保證金,我ChildGrid只有其內容的寬度,而不是ParentGrid的寬度。這就是我認爲我需要首先綁定ChildGrid的寬度的原因。 – rosst

+0

你使用了什麼內容?如果您在子網格內有一個標籤,子網格仍然是沒有標籤的相同大小... –

+0

ChildGrid具有邊界和較小的網格作爲子網。作爲測試,我刪除了所有內容並刪除了ChildGrid上的寬度。 ChildGrid然後收縮到0寬度。我是否在某處設置了一個設置(可能在Window上?)來打破這種預期的關係? [另外,感謝您的幫助。非常感謝] – rosst