覆盖度量/排列将隐藏按钮控件

时间:2018-04-23 12:35:34

标签: c# wpf arrangeoverride

我有以下

public class MatrixButton : Button
{
  public MatrixButton()
  {
    Height = 20;
    Width = 44;
    Content = "foo";
  }

  protected override Size MeasureOverride(Size constraint)
  {
    var measureOverride = new Size(44, 20);
    return measureOverride;
  }

  protected override Size ArrangeOverride(Size arrangeBounds)
  {
    var arrangeOverride = new Size(44, 20);
    return arrangeOverride;
  }
}

现在我把那个按钮放在一个空窗口中:

public partial class MainWindow : Window
{
  public MainWindow()
  {
    InitializeComponent();
    Content = new MatrixButton();

  }
}

出于某种原因,该按钮在窗口中不可见。有谁知道为什么? 如果我删除了覆盖,则显示正确的按钮...

修改 原因是按钮被集成在一个复杂的布局中,其中有很多布局通道消耗了大量的时间,但按钮的大小将始终相同

1 个答案:

答案 0 :(得分:0)

即使您想要限制大小,您仍然应该调用reloadData的子元素的基本方法进行测量并按预期进行排列:

Button