我试图让根据UniformGrid一个表格显示每个单元的坐标,我想表明的X值和Y轴,像这样:均匀网格的行和列
_A_ _B_ _C_ _D_
1 |___|___|___|___|
2 |___|___|___|___|
3 |___|___|___|___|
4 |___|___|___|___|
无论如何,为了做到这一点,我需要知道统一网格中的列和行的数量,我尝试覆盖排列/绘图发生的3种最基本的方法,但其中的列和行是0,甚至是尽管我在网格中有一些控件。我可以重写什么方法,以便我的笛卡尔网格知道它有多少个列和行?
C#:
public class CartesianGrid : UniformGrid
{
protected override Size MeasureOverride(Size constraint)
{
Size size = base.MeasureOverride(constraint);
int computedColumns = this.Columns; // always 0
int computedRows = this.Rows; // always 0
return size;
}
protected override Size ArrangeOverride(Size arrangeSize)
{
Size size = base.ArrangeOverride(arrangeSize);
int computedColumns = this.Columns; // always 0
int computedRows = this.Rows; // always 0
return size;
}
protected override void OnRender(DrawingContext dc)
{`enter code here`
int computedColumns = this.Columns; // always 0
int computedRows = this.Rows; // always 0
base.OnRender(dc);
}
}
XAML:
<local:CartesianGrid>
<Label Content="Hello" />
<Label Content="Hello" />
<Label Content="Hello" />
<Label Content="Hello" />
<Label Content="Hello" />
<Label Content="Hello" />
</local:CartesianGrid>
任何帮助是极大的赞赏。谢谢!
哇你的解决方案非常简单,只有我不得不改变numRows来使用Math.Ceiling。我自己想出了另一种解决方案,但我更喜欢你的(在问题中发布了我的解决方案)。谢谢! – Carlo 2010-06-02 22:19:01
对不起,但你的解决方案没有效果,虽然简单得多。在我们的例子中,列数和行数是不一样的。所以我不得不使用我的解决方案来计算实际的列数和行数,而不是假设这些数字是相同的。谢谢! – Carlo 2010-06-02 23:17:52
事实上,nvm从一开始就比较容易,在我们的项目中,列和行是通过DependencyProperty特别设置的,当列和行未设置时,您的解决方案应该可以正常工作,这正是我一开始就瞄准的目标。谢谢! – Carlo 2010-06-02 23:21:38