ho questo pezzo di codice XAML:WPF controllo dimensione effettiva
<Window x:Class="SizingTest.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Grid>
<Label x:Name="theLabel" Width="Auto">A very large label with a lot of text</Label>
</Grid>
</Window>
nel codice dietro, sto cercando di ottenere la larghezza effettiva del marchio, ho pensato
theLabel.ActualWidth
avrebbe fatto il trucco, ma dopo aver provato questo codice:
public Window1()
{
InitializeComponent();
double width = theLabel.ActualWidth;
}
Il valore della larghezza è 0, ho anche controllato con theLabel.Width, che restituisce NaN, theLabel.Desir edSize.Width, che restituisce anche 0. Cosa posso usare per trovare la larghezza reale dell'etichetta?
Grazie.
Potrebbe essere che il controllo non abbia ActualWidth perché sei ancora nel costruttore? Windows non è ancora stato ancora reso. Cosa succede se si sposta quel codice per, ad esempio, il gestore di eventi Loaded? –
Ha! Questo è stato. Ho sempre pensato dopo InitializeComponent() tutto dovrebbe essere già reso ... grazie! – Carlo