选定单元格的边框

时间:2015-02-03 21:00:24

标签: wpf

我试图在我的网格单元顶部减去前两个单元格(主页按钮和搜索)后面有一个黄色边框。我尝试了几个场景。

这是没有任何边框的应用程序标题。

http://snag.gy/2lIIm.jpg

当我在网格项上指定边框时,这是应用程序。这个问题是它会停止并且不会延伸到最后。

http://snag.gy/pVbHd.jpg

下面的图片延伸到最后,但它也在第1项和第2项的顶部。我试图在前两项上没有边框。

http://snag.gy/6QiX9.jpg

如果我可以帮助解决这个问题,请

WorkTabView.xaml

选定按钮上的边框但未扩展到最右侧 - 伪代码

<Grid>
    ....
    <Button-Home Grid.Column0>
    <AutoCompleteBox Grid.Column1>        
    <Border BorderBrush="Yellow" Grid.Column=2 BorderThickness="0,1,0,0">
        <Button1/>
    <Border/>
    <Border BorderBrush="Yellow" Grid.Column=3 BorderThickness="0,1,0,0">
        <Button2/>
    <Border/>
<Grid>

边界一切,但我的目标是不要超过搜索和主页按钮Pseudo Code

<Border BorderBrush="Yellow" BorderThickness="0,1,0,0">    
    <Grid>
        ....
        <Button-Home Grid.Column0>
        <AutoCompleteBox Grid.Column1>        
        <Button1 Grid.Column2/>            
        <Button2 Grid.Column3/>             
    <Grid>
</Border>

抱歉伪代码,发布它以防止冗长的帖子和重复。我的目标是围绕一切,但搜索和黄色主页按钮。

1 个答案:

答案 0 :(得分:1)

我在这里看到两个选项。

使用您的Option1,但添加一个额外的项目来填充剩余的剩余空间。

<Grid>
    ....
    <Button-Home Grid.Column0>
    <AutoCompleteBox Grid.Column1>        
    <Border BorderBrush="Yellow" Grid.Column=2 BorderThickness="0,1,0,0">
        <Button1/>
    <Border/>
    <Border BorderBrush="Yellow" Grid.Column=3 BorderThickness="0,1,0,0">
        <Button2/>
    <Border/>
    <Border BorderBrush="Yellow" Grid.Column=3 BorderThickness="0,1,0,0">
        <SomeBlankItemToTakeUpRemainingSpace/>
    <Border/>
<Grid>

如果使用了这个,我肯定会看到为边框创建自定义样式或模板以避免重复自己

或者,将两个部分分成两个单独的面板,并将它们存储在另一个面板中,该面板具有填充所有可用空间的默认行为,如DockPanel

<DockPanel>
    <Grid DockPanel.Dock="Right">
        <HomeButton>
        <SearchBox>
    </Grid>
    <Border> <!-- this is last item in DockPanel, so should stretch to fill all available space -->
        <Grid>   
            <Button1 Grid.Column1/>            
            <Button2 Grid.Column2/>             
        <Grid>
     </Border>
</DockPanel>

我个人更喜欢第二种选择。 WPF中的LayoutControl用于布置控件,而不是用于创建项目表,所以对我来说这似乎是更清晰的方法。