UIElement.DesiredSize Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает размер, вычисленный этим элементом на этапе измерения процесса компоновки.
public:
property System::Windows::Size DesiredSize { System::Windows::Size get(); };
public System.Windows.Size DesiredSize { get; }
member this.DesiredSize : System.Windows.Size
Public ReadOnly Property DesiredSize As Size
Значение свойства
Вычисленный размер, который становится предпочтительным размером на этапе упорядочения.
Примеры
В следующем примере показана DesiredSize часть MeasureOverride реализации. Обратите внимание, как Measure вызывается непосредственно перед получением DesiredSize. Это гарантирует, что DesiredSize имеет законную ценность.
virtual Size MeasureOverride(Size availableSize) override
{
Size^ panelDesiredSize = gcnew Size();
// In our example, we just have one child.
// Report that our panel requires just the size of its only child.
for each (UIElement^ child in InternalChildren)
{
child->Measure(availableSize);
panelDesiredSize = child->DesiredSize;
}
return *panelDesiredSize ;
}
protected override Size MeasureOverride(Size availableSize)
{
Size panelDesiredSize = new Size();
// In our example, we just have one child.
// Report that our panel requires just the size of its only child.
foreach (UIElement child in InternalChildren)
{
child.Measure(availableSize);
panelDesiredSize = child.DesiredSize;
}
return panelDesiredSize ;
}
Protected Overrides Function MeasureOverride(ByVal availableSize As System.Windows.Size) As System.Windows.Size
Dim panelDesiredSize As Size = New Size()
' In our example, we just have one child.
' Report that our panel requires just the size of its only child.
For Each child As UIElement In InternalChildren
child.Measure(availableSize)
panelDesiredSize = child.DesiredSize
Next
Return panelDesiredSize
End Function
Комментарии
Значение, возвращаемое этим свойством, будет допустимым измерением, только если свойство имеет true
значение IsMeasureValid .
DesiredSize обычно проверяется как один из факторов измерения при реализации переопределений поведения макета, таких как ArrangeOverride, MeasureOverrideили OnRender (в OnRender случае можно проверить RenderSize , но это зависит от реализации). В зависимости от сценария, DesiredSize может полностью соблюдаться логикой реализации, могут применяться ограничения для DesiredSize , и такие ограничения также могут изменять другие характеристики родительского или дочернего элемента. Например, элемент управления, поддерживающий прокручиваемые области (но не наследующий от элементов управления уровня платформы WPF, которые уже поддерживают прокручиваемые области), может сравнить доступный размер с DesiredSize. Затем элемент управления может задать внутреннее состояние, включающее полосы прокрутки в пользовательском интерфейсе для этого элемента управления. Или может DesiredSize также игнорироваться в некоторых сценариях.