Sto provando a creare un'applicazione che verrà compressa in cui ogni scheda avrà un'area dei pulsanti e un'area di visualizzazione.Come riutilizzare i layout in WPF
Ora ogni scheda avrà essenzialmente lo stesso layout solo diverse cose nel layout e volevo poter riutilizzare lo stesso layout in modo da non dover cambiare in molti punti (non è una buona programmazione). Posso realizzare questo utilizzando risorse o forse stili.
Se possibile, fornire un esempio di codice di illuminazione.
EDIT: Ho deciso di aggiungere un esempio di ciò che sto cercando di fare perché non riesco ancora a ottenerlo.
Sotto ogni TabItem sto cercando di ricreare questa griglia (E 'un po' più complicato, ma si ottiene l'idea):
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="200"/>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Border Margin="10"
BorderBrush="{StaticResource MediumColorBrush}"
CornerRadius="10"
BorderThickness="2"
Grid.Row="0">
<!-- First content goes here -->
</Border>
<Border Margin="10"
BorderBrush="{StaticResource MediumColorBrush}"
CornerRadius="10"
BorderThickness="2"
Grid.Row="1">
<!-- Second content goes here -->
</Border>
</Grid>
come si può vedere anche i 2 bordi sono gli stessi. Ora ho bisogno di mettere un segnaposto di contenuto dove sono i miei commenti. Non voglio dichiarare questo layout Grid in un dizionario delle risorse e quindi, dove lo uso, metto un contenuto separato in ciascun bordo.
Posso avere un sacco di TabItems quindi ripetere questo codice non è una buona idea e ogni pagina Tab avrà contenuto diverso nei 2 segnaposti.
sono in grado di utilizzare la cosa
<ContentPresenter Content="{Binding}" />
ma solo per 1 il contenuto, ciò che accade quando non ci sarà più.
Grazie, ancora avvolgendo la mia testa intorno a WPF. Ora ho appena realizzato la possibilità di creare la mia classe che eredita da TabItem ma ha la struttura pronta. Non sono sicuro se funziona così, perché non so come aggiungere elementi nei layout. –
Ok ho scoperto che non è possibile ereditare le classi Xaml, quindi non è di alcuna utilità per me. Tutti gli articoli che hai menzionato riguardano la personalizzazione dei controlli, non il riutilizzo dei layout e, se vuoi dire che potrei personalizzare il TabItem o qualcosa per farlo funzionare, non lo vedrò. –
Personalizzare TabItem non mi sembra giusto (anche se puoi tramite i controlli personalizzati). Invece è possibile creare un controllo utente e inserirlo in ogni TabItem. La soluzione più elegante è quella di creare DataTemplate e usarlo come ItemTemplate per TabControl ... – Anvaka