wpf - 网格在列定义之间留下额外的空间
问题描述
我有一个带有自定义模板的自定义按钮。在模板中,我使用网格定义对 aRectangle
和.Canvas
Label
这是模板:
<ControlTemplate
TargetType="{x:Type l:UXButton}">
<Border
Name="TEMP_Container"
Padding="{TemplateBinding Padding}"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="{TemplateBinding CornerRadius}"
FlowDirection="{Binding Converter={StaticResource LocalizedFlowConverter}}">
<Grid
Name="TEMP_ContentContainer"
Background="Blue">
<Grid.ColumnDefinitions>
<ColumnDefinition
Name="ColumnIcon"
Width="{Binding ActualHeight, RelativeSource={RelativeSource AncestorType={x:Type Border}}}" />
<ColumnDefinition
Name="ColumnSpace"
Width="auto" />
<ColumnDefinition
Name="ColumnContent"
Width="auto" />
</Grid.ColumnDefinitions>
<Rectangle
Name="TEMP_Icon"
Grid.Column="0"
Margin="0"
Fill="{TemplateBinding Foreground}">
<Rectangle.OpacityMask>
<VisualBrush
Stretch="{Binding RelativeSource={RelativeSource AncestorType=l:UXButton}, Path=Stretch}"
Visual="{Binding RelativeSource={RelativeSource AncestorType=l:UXButton}, Path=IconSource}" />
</Rectangle.OpacityMask>
</Rectangle>
<Canvas
Name="TEMP_Space"
Grid.Column="1"
Margin="0"
Width="{TemplateBinding Spacing}" />
<Label
Name="TEMP_Content"
Grid.Column="2"
Margin="0"
Padding="0"
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
Foreground="{TemplateBinding Foreground}">
<TextBlock
Margin="0"
Padding="0"
Text="{TemplateBinding Content}"
TextDecorations="{TemplateBinding TextDecorations}" />
</Label>
</Grid>
</Border>
</ControlTemplate>
结果如下:
Canvas
正如您所看到的,网格在(红色)和(绿色)之间留下了一个额外的空间(蓝色)Rectangle
,我似乎无法理解为什么!我什至尝试使用静态值作为列宽,但没有帮助。我也使用了XAML debugging tools
,它似乎是Grid
.
这个空间是从哪里来的?
解决方案
我认为“修复”您拥有的东西但保留该网格的简单方法是将其包装在另一个网格中。
这样它就应该集中和收缩。除非你有东西设置网格的宽度。
推荐阅读
- ubuntu - 在谷歌云平台上连接 ssh 时出错
- python - Python OSError 无法打开资源
- flutter - SwitchListTile 无法对标题和副标题的文本进行样式设置
- sql - 在类型为 number 的列上使用 case 表达式将其输出为字符串
- python - TensorFlow回归模型保存为RESTful格式,调用时报错?
- reactjs - Single SPA 中的 Material UI 主题冲突
- c# - 如何在服务器(.Net)中处理 SignalR 客户端异常?
- reactjs - 如何在反应js的数据表列上方的下拉列表中显示所有不同的值
- c - .init_array 函数参数的任何文档?
- rest - 在 REST Api 中发送和立即检索响应数据的方法