【问题标题】:WPF/C# - Throw away the Content for a Checkbox in a DatagridWPF/C# - 丢弃数据网格中复选框的内容
【发布时间】:2020-08-26 12:55:21
【问题描述】:

TL;DR 如何使复选框不绘制/包含内容标签或标签所需的空间?

我将 Visual Studio 与 C# 和 WPF 结合使用。我在 DataGrid 内的 DataTemplate 中有一个复选框。我的问题是我怀疑虽然内容是空的,但内容的空间仍在被占用。

最终结果是,我在列的左侧有一个复选框被砸碎,右侧是一大片空白

我当前的 UI 灾难如下所示:

现在,我的 XAML 如下所示。如您所见,我尝试过使用 Horizo​​ntal 和 Horizo​​ntalContentAlignments,但几乎没有运气。

 <DataGridTemplateColumn Header="Y/N">
   <DataGridTemplateColumn.CellTemplate>
     <DataTemplate>
       <CheckBox IsChecked="{Binding Path=IsSelected, UpdateSourceTrigger=PropertyChanged}" 
                                  HorizontalContentAlignment="Center">
         <TextBlock>
         </TextBlock>
       </CheckBox>
     </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
 </DataGridTemplateColumn>

我尝试设置 DataGridTemplateColumn 的大小,但即使设置了 Horizo​​ntal* 属性,我也没有看到它真正居中复选框,这让我觉得它有空间放置标签。

非常感谢您对此的任何帮助。

【问题讨论】:

  • &lt;CheckBox HorizontalAlignment="Center"/&gt; 确实将列中的复选框居中。这就是你想要的吗?
  • @Rekshino Checkbox 没有 Horizo​​ntalAlignment 属性

标签: c# wpf checkbox


【解决方案1】:
<DataGridTemplateColumn Header="Y/N" Width="50">
   <DataGridTemplateColumn.CellTemplate>
     <DataTemplate>
       <CheckBox IsChecked="{Binding Path=IsSelected, UpdateSourceTrigger=PropertyChanged}" 
                                  HorizontalContentAlignment="Center">
         <TextBlock>
         </TextBlock>
       </CheckBox>
     </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
 </DataGridTemplateColumn>

在 DataGridTemplateColumn 中插入宽度

 <DataGridCheckBoxColumn Header="Y/N" Binding="{Binding Path=IsSelected, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}">
                        </DataGridCheckBoxColumn>

你可以这样使用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-30
    • 2013-09-28
    • 2011-05-28
    • 2011-11-06
    • 2012-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多