选定单元格的边框
Border over selected cells
我试图在我的网格单元格减去前两个单元格(主页按钮和搜索)的顶部有一个黄色边框。我尝试了几个场景。
这是应用header没有任何边界。
这是我在网格项上指定边框时的应用程序。这个问题是它停止并且没有延伸到最后。
下图一直延伸到最后,但它也在第 1 项和第 2 项之上。我尽量不在前两项上添加边框。
如果我能得到有关此问题的帮助。
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 用于布置控件,而不是用于创建项目表,所以对我来说这似乎是更简洁的方法。
我试图在我的网格单元格减去前两个单元格(主页按钮和搜索)的顶部有一个黄色边框。我尝试了几个场景。
这是应用header没有任何边界。
这是我在网格项上指定边框时的应用程序。这个问题是它停止并且没有延伸到最后。
下图一直延伸到最后,但它也在第 1 项和第 2 项之上。我尽量不在前两项上添加边框。
如果我能得到有关此问题的帮助。
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 用于布置控件,而不是用于创建项目表,所以对我来说这似乎是更简洁的方法。