UIElement.DesiredSize Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém o tamanho que esse elemento calculou durante o passo de medição do processo de layout.
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
Valor da propriedade
O tamanho calculado, que se torna o tamanho desejado para o passo de organização.
Exemplos
O exemplo a seguir é mostrado DesiredSize como parte de uma MeasureOverride implementação. Observe como Measure é chamado imediatamente antes de DesiredSizeobter . Isso garante que DesiredSize tenha um valor legítimo.
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
Comentários
O valor retornado por essa propriedade será apenas uma medida válida se o valor da IsMeasureValid propriedade for true
.
DesiredSize normalmente é verificado como um dos fatores de medida quando você implementa substituições de comportamento de layout, como ArrangeOverride, MeasureOverrideou OnRender (no OnRender caso, você pode verificar RenderSize em vez disso, mas isso depende de sua implementação). Dependendo do cenário, DesiredSize pode ser totalmente respeitado pela lógica de implementação, as restrições podem ser aplicadas DesiredSize e essas restrições também podem alterar outras características do elemento pai ou do elemento filho. Por exemplo, um controle que dá suporte a regiões roláveis (mas opta por não derivar dos controles de nível de estrutura do WPF que já habilitam regiões roláveis) pode comparar o tamanho disponível com DesiredSize. Em seguida, o controle pode definir um estado interno que habilitou barras de rolagem na interface do usuário para esse controle. Ou, potencialmente, DesiredSize também pode ser ignorado em determinados cenários.