Пользовательский контроль рисования Silverlight 4

#windows-phone-7 #silverlight-4.0

#windows-phone-7 #silverlight-4.0

Вопрос:

Я создал пользовательский элемент управления только для того, чтобы содержать изображение, потому что мне приходится использовать методы Measureoverride и arrangeoverride, и я не могу создать подкласс (изображение выбрано)… в любом случае, дело в том, что когда я называю это.Изображение.Мера (размер, который вы хотите придать изображению) поле желаемого размера изображения не задано… кто-нибудь знает почему? Я уже управлял методами компоновки раньше, и это сработало… Вот код (я уже проверил все остальные размеры, и ни один из них не равен 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:

В конце концов, это было действительно простое решение… В конструкторе UserControl я добавил эту строку: this.Content = изображение; И теперь содержимое пользовательского элемента управления отображается на экране 🙂