【问题标题】:Items added to a Panel are overlapping.添加到面板的项目是重叠的。
【发布时间】:2014-07-12 23:46:11
【问题描述】:

当我将项目 (RadioButtons) 添加到面板时,它们会彼此重叠显示:

foreach (var item in items)
{
   this.ContentPanel.Children.Add(new RadioButton() { Content = ... );
}

为什么会这样?我怎样才能让它们重叠出现?

【问题讨论】:

  • 使用带有数据绑定的列表框
  • ContentPanel 是什么类型的?
  • 如果您使用代码(在 XAML 之外)在 WPF 中为简单的事情生成控件,那么您这样做错误。创建一个 ItemsControl,将其绑定到 pubs 列表。创建一个 DataTemplate,定义 Pub 与 RadioButton 一起显示,并将控件的属性绑定到按钮
  • 考虑使用DataBindings和ItemTemplating
  • 听起来ContentPanel是一种允许控件重叠的面板类型,例如GridCanvas。将其更改为以特定布局排列其项目的面板,例如<StackPanel>,它将起作用。

标签: c# wpf layout panel overlap


【解决方案1】:

一般来说,可能希望将其移至您的 xaml。

但要解决您当前的问题,请将单选按钮添加到水平对齐的堆栈面板或网格,然后将该堆栈面板/网格添加到您的内容面板

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多