UserControl绘图Silverlight 4

时间:2011-04-21 15:09:04

标签: windows-phone-7 silverlight-4.0

我创建了一个usercontrol只是为了包含一个Image,因为我必须使用Measureoverride和arrangeoverride方法而且我不能创建一个子类(Image是seled)...无论如何,事情就是当我调用它时.Image .Measure(SizeIwantto赋予图像)图像的desiredSize字段未设置...任何人都知道为什么? 我之前一直在管理Layouting方法,它有效... 这是代码(我已经检查了所有其他尺寸,但没有一个是0或NaN)

    protected override Size MeasureOverride(Size availableSize)
    {


        //the size that the element wants to have
        Size imageDesiredSize = new Size();

        imageDesiredSize = availableSize;
        //if the current element's size is a pertentage
        if ((futureHeight != 0))
        {
            imageDesiredSize.Height = availableSize.Height * futureHeight / 100;
        }
        if ((futureWidth != 0))
        {
            imageDesiredSize.Width = availableSize.Width * futureWidth / 100;
        }

        if (widthWrap)
        {
            imageDesiredSize.Width = ((BitmapImage)this.Source).PixelWidth;
        }
        if (heightWrap)
        {
            imageDesiredSize.Height = ((BitmapImage)this.Source).PixelHeight;
        }
        System.Diagnostics.Debug.WriteLine("imagedesired" + imageDesiredSize);
        this.image.Measure(imageDesiredSize);
        System.Diagnostics.Debug.WriteLine("desiredsize" + this.image.DesiredSize);

        return imageDesiredSize;
    }

1 个答案:

答案 0 :(得分:0)

最后这是一个非常简单的解决方案......在UserControl的构造函数中,我添加了这一行:this.Content = image; 现在,Usercontrol的内容将在屏幕上绘制: - )