UIElement.DesiredSize Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene le dimensioni calcolate da questo elemento durante il passaggio di misurazione del processo di 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
Valore della proprietà
Dimensioni calcolate, che diventano le dimensioni desiderate per il passaggio di disposizione.
Esempio
Nell'esempio seguente viene illustrato DesiredSize come parte di un'implementazione MeasureOverride . Si noti come Measure viene chiamato immediatamente prima di ottenere DesiredSize. Ciò assicura che DesiredSize contenga un valore legittimo.
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
Commenti
Il valore restituito da questa proprietà sarà solo una misura valida se il valore della IsMeasureValid proprietà è true
.
DesiredSize viene in genere controllato come uno dei fattori di misurazione quando si implementano gli overridi del comportamento di layout, ArrangeOverridead esempio , MeasureOverrideo OnRender (nel OnRender caso, è possibile controllare RenderSize , ma dipende dall'implementazione). A seconda dello scenario, DesiredSize potrebbe essere completamente rispettato dalla logica di implementazione, i vincoli da DesiredSize applicare e tali vincoli potrebbero anche modificare altre caratteristiche dell'elemento padre o dell'elemento figlio. Ad esempio, un controllo che supporta aree scorrevoli (ma sceglie di non derivare dai controlli a livello di framework WPF che già abilitano aree scorrevoli) potrebbe confrontare le dimensioni disponibili a DesiredSize. Il controllo potrebbe quindi impostare uno stato interno che ha abilitato le barre di scorrimento nell'interfaccia utente per tale controllo. In alternativa, DesiredSize potrebbe anche essere ignorato in determinati scenari.