环境:VS2017 framework4.5.2
问题,自定义一个容器控件,在xmal中添加子控件,当项目为any cpu时,设计窗口能够实时看到效果,但是项目为x64时,设计窗口不能展示。运行时都是正常的。
正常效果:异常效果:控件代码:
public class SplitPanel : Panel
{
protected override Size MeasureOverride(Size availableSize)
{
foreach (UIElement child in InternalChildren)
{
child.Measure(availableSize); // 测量子元素期望布局尺寸(child.DesiredSize)
} return base.MeasureOverride(availableSize);
} protected override Size ArrangeOverride(Size finalSize)
{
if (double.IsInfinity(finalSize.Height) || double.IsInfinity(finalSize.Width))
{
throw new InvalidOperationException("容器的宽和高必须是确定值");
} if (Children.Count > 0)
{
double childAverageWidth = finalSize.Width / Children.Count;
for (int childIndex = 0; childIndex < InternalChildren.Count; childIndex++)
{
// 计算子元素将被安排的布局区域
var rect = new Rect(childIndex * childAverageWidth, 0, childAverageWidth, finalSize.Height);
InternalChildren[childIndex].Arrange(rect);
}
} return base.ArrangeOverride(finalSize);
}
}请问这是什么情况?该如何在X64时也能让设计窗口展示正确?
问题,自定义一个容器控件,在xmal中添加子控件,当项目为any cpu时,设计窗口能够实时看到效果,但是项目为x64时,设计窗口不能展示。运行时都是正常的。
正常效果:异常效果:控件代码:
public class SplitPanel : Panel
{
protected override Size MeasureOverride(Size availableSize)
{
foreach (UIElement child in InternalChildren)
{
child.Measure(availableSize); // 测量子元素期望布局尺寸(child.DesiredSize)
} return base.MeasureOverride(availableSize);
} protected override Size ArrangeOverride(Size finalSize)
{
if (double.IsInfinity(finalSize.Height) || double.IsInfinity(finalSize.Width))
{
throw new InvalidOperationException("容器的宽和高必须是确定值");
} if (Children.Count > 0)
{
double childAverageWidth = finalSize.Width / Children.Count;
for (int childIndex = 0; childIndex < InternalChildren.Count; childIndex++)
{
// 计算子元素将被安排的布局区域
var rect = new Rect(childIndex * childAverageWidth, 0, childAverageWidth, finalSize.Height);
InternalChildren[childIndex].Arrange(rect);
}
} return base.ArrangeOverride(finalSize);
}
}请问这是什么情况?该如何在X64时也能让设计窗口展示正确?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货