2015-08-19 57 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