Mam niestandardowy ControlTemplate dla WPF TabControl, który dodaje przyciski po lewej i prawej stronie nagłówka TabItem. W tej chwili nie jest to nazwana część, ponieważ polecenia przycisku są powiązane w ControlTemplates XAML i nie muszą być odsłonięte poza ControlTemplate.Jak mogę dodać dodatkową zawartość do elementu TabControl WPF?
Działa to dobrze dla przycisku, ale co zrobić, jeśli chcę dodać zawartości w lewo (lub prawo) strony TabItemHeaders który może być związany poza ControlTemplate tak, że mój TabControl staje się bardziej elastyczne?
Mój pomysł polegał na podklasie TabControl i posiadaniu dwóch nazwanych części w ControlTemplate i odsłonięciu ich jako właściwości nowego kontrolki; CustomTabControl.LeftContentArea i CustomTabControl.RightContentArea odpowiednio. Każda nazwana część to ContentPresenter, a każda właściwość Content Content prezentowana jest przez właściwości wymienione powyżej.
Jednak gdy próbowałem tego, nie byłem w stanie umieścić treści w lewej i prawej części zawartości.
Edycja: Aby było jasne, załączam zdjęcie. Czerwone prostokąty pokazują, gdzie chcę umieścić dodatkową zawartość.
Update: Poniżej znajduje się zrzut ekranu z postępów, jakie dokonane do tej pory, mam nadzieję, że to pomoże wyjaśnić mój problem nieco bardziej.
Zrzut ekranu pokazuje moją niestandardową kontrolkę tabulacji z dwoma pustymi kartami i trzema przyciskami, które są aktualnie po prawej stronie obszaru nagłówka TabItem. Przyciski są obecnie zdefiniowane w Tab. Tab.ControlTemplate I.E. istnieje ColumnDefinition w sieci ControlTemplates, która zawiera StackPanel, która zawiera 3 przyciski.
Co szukam to sposób, aby umożliwić konsumentowi kontroli zakładce decydować, jakie treści idzie w obszarze obok zakładek. NA PRZYKŁAD. użytkownik powinien być w stanie zrobić coś takiego:
<local:CustomTabControl>
<local:CustomTabControl.RightContentArea>
<!-- This can be changed to ANY content that the user wants -->
<StackPanel Orientation="Horizontal">
<Button Content="Test" />
<Button Content="Test" />
<Button Content="Test" />
</StackPanel>
</local:CustomTabControl.RightContentArea>
<!-- TabItems are added as normal -->
<TabItem Header="Tab One" />
<TabItem Header="Tab Two" />
</local:CustomTabControl>
szukam sposób wystawiając nieruchomość w formancie niestandardowym, więc mogę go powiązać z tym w XAML: LeftContentArea = "{StaticResource MyPanelWithLotsOfButtonsControl}". Niestandardowa zawartość musi znajdować się po lewej stronie TabItems, a nie po lewej stronie nagłówka. Pomaga mi to w innym problemie, który miałem, więc przegłosuję, gdy mam już dość przedstawicieli. Dziękuję Ci. –
Możesz również powiązać z tymi zasobami. Po lewej stronie TabItems, masz na myśli w obszarze Nagłówek po lewej stronie wszystkich zakładek? –
Tak. W moim niestandardowym szablonie kontroli dodałem dodatkowe ColumnDefinition, dzięki czemu karty są przesunięte i jest miejsce na dodanie dodatkowej zawartości. Chcę ujawnić właściwość, która pozwala mi umieszczać treści w tym obszarze. –