Condividi tramite


FrameworkElement.HorizontalAlignment Proprietà

Definizione

Ottiene o imposta le caratteristiche di allineamento orizzontale applicate a un FrameworkElement quando è composto in un elemento padre di layout, ad esempio un pannello o un controllo elementi.

public:
 property HorizontalAlignment HorizontalAlignment { HorizontalAlignment get(); void set(HorizontalAlignment value); };
HorizontalAlignment HorizontalAlignment();

void HorizontalAlignment(HorizontalAlignment value);
public HorizontalAlignment HorizontalAlignment { get; set; }
var horizontalAlignment = frameworkElement.horizontalAlignment;
frameworkElement.horizontalAlignment = horizontalAlignment;
Public Property HorizontalAlignment As HorizontalAlignment
<frameworkElement HorizontalAlignment="horizontalAlignmentMemberName"/>
 

Valore della proprietà

Impostazione di allineamento orizzontale come valore dell'enumerazione. Il valore predefinito è Stretch.

Esempio

In questo esempio il valore Center viene assegnato a HorizontalAlignment e VerticalAlignment per posizionare gli elementi TextBlock al centro delle celle Grid .

<Grid x:Name="LayoutRoot" Background="Coral" Width="300" Height="100">
    <Grid.ColumnDefinitions>
        <ColumnDefinition />
        <ColumnDefinition />
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition />
        <RowDefinition />
    </Grid.RowDefinitions>
    <TextBlock Grid.Column="0" Grid.Row="0" Text="First Name" 
        HorizontalAlignment="Center" VerticalAlignment="Center" />
    <TextBlock Grid.Column="0" Grid.Row="1" Text="Last Name" 
        HorizontalAlignment="Center" VerticalAlignment="Center" />
    <TextBox Grid.Column="1" Grid.Row="0" />
    <TextBox Grid.Column="1" Grid.Row="1" />

</Grid>

Commenti

Le proprietà di allineamento sono destinate a suggerire il layout desiderato a un contenitore di layout adattivo. In genere vengono impostati sugli elementi figlio FrameworkElement e interpretati da un altro elemento padre del contenitore FrameworkElement (in genere una classe derivata ContentControl o una classe derivata Panel o forse un relatore). L'impostazione delle proprietà di allineamento su un elemento figlio non garantisce alcun effetto; il comportamento dipende dalla composizione del layout e dagli elementi padre coinvolti.

Quando le proprietà Height e Width vengono impostate o calcolate in modo esplicito su un oggetto, tali misurazioni sono più importanti per la logica di layout tipica e possono annullare gli effetti dell'impostazione di HorizontalAlignment su Stretch. Le proprietà dei vincoli di layout (ad esempio MaxWidth) influiscono anche sulla dimensione massima o minima del layout per una situazione di layout esteso . Stretch è l'impostazione predefinita in modo che sia più semplice usare tecniche di layout adattivo nei casi in cui non vi sia alcuna misurazione esplicita. Tuttavia, se sono presenti altezza e larghezza o ritaglio, il layout agisce come se il valore sia Top per VerticalAlignment, in genere Left per HorizontalAlignment (destra per informazioni sulle impostazioni cultura da destra a sinistra o valori di FlowDirection espliciti). Per altre info, vedi Allineamento, margine e spaziatura interna.

Canvas non usa HorizontalAlignment durante la composizione del layout, perché Canvas è basato sul posizionamento assoluto. In generale, il valore di HorizontalAlignment viene potenzialmente trattato in modo diverso da qualsiasi oggetto in grado di avere uno o più oggetti FrameworkElement come contenuto figlio. Ogni oggetto padre può avere una logica di layout personalizzata.

Ogni elemento dell'interfaccia utente XAML può applicare questa proprietà in modo diverso in base ai setter Style per lo stile implicito. L'apparente "valore predefinito" per HorizontalAlignment in ogni elemento dell'interfaccia utente può essere diverso. Ad esempio, un controllo Button inizia con il valore Left. Se l'elemento dell'interfaccia utente è un controllo, il valore HorizontalAlignment potrebbe influire anche sul modello di oggetto visivo del controllo.

Nei controlli contenuto, il modello di controllo usa spesso espressioni di estensione di markup {TemplateBinding} per associare la proprietà HorizontalContentAlignment a una proprietà HorizontalAlignment in un elemento all'interno del modello, ad esempio il relatore o l'elemento usato come area di contenuto.

Si applica a

Vedi anche