#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 = изображение; И теперь содержимое пользовательского элемента управления отображается на экране 🙂