选定单元格的边框

Border over selected cells

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

这是应用header没有任何边界。

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>

边界覆盖一切,但我的目标是不覆盖搜索和主页按钮伪代码

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

很抱歉伪代码,post编辑它以防止冗长 post 和重复。我的目标是在除搜索和黄色主页按钮之外的所有内容周围设置边框。

我在这里看到两个选项。

使用你的选项 1,但放置一个额外的项目来填充剩余的 space。

<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>

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

或者,将这两个部分分成两个单独的面板,并将它们存储在另一个面板中,该面板的默认行为是填充所有可用 space,例如 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 中的 LayoutControls 用于布置控件,而不是用于创建项目表,所以对我来说这似乎是更简洁的方法。