Как я могу задать высоту динамически созданный вкладке "колонтитулы" в WPF?
Всем привет,
к сожалению, я вынужден манипулировать кодом, который другие создали много лет назад. Решение представляет собой приложение WPF (с Caliburn.Микро и Ninject).
Внутри показанного DevExpress DockLayoutManager создается TabControl и динамически добавляются вкладки. Таким образом, в XAML не появляется вкладка.
Единственное, что я хочу сделать, - это повлиять на высоту заголовка вкладки.
Я действительно перепробовал все, что мог себе представить или найти, включая подсказки на всех форумах. Но нигде я не мог получить доступ к заголовку или даже к одной вкладке, ни в XAML, ни в коде позади. Там, кажется, нет никакой вкладки или итерации заголовка. Что вы должны знать: к сожалению, элементы в ItemSource - это не TabItems, а пользовательские объекты. Так что у них тоже нет заголовка...
Есть идеи??? Самым хорошим решением было бы установить
<UserControl x:Class="Jenoptik.TS.TDSKpro.Studio.Common.Views.Details.DetailsView" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:viewModels="clr-namespace:Jenoptik.TS.TDSKpro.Studio.Common.ViewModels.Details" xmlns:cal="http://www.caliburnproject.org" xmlns:dxdo="http://schemas.devexpress.com/winfx/2008/xaml/docking" xmlns:details="clr-namespace:Jenoptik.TS.TDSKpro.Studio.Common.Views.Details" mc:Ignorable="d" d:DataContext="{d:DesignInstance viewModels:DetailsViewModel}" Grid.IsSharedSizeScope="True"> <UserControl.Resources> <Style TargetType="{x:Type Grid}"> <Setter Property="VerticalAlignment" Value="Top" /> </Style> <Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource {x:Type TextBox}}"> <Setter Property="Margin" Value="5,2" /> <Setter Property="IsReadOnly" Value="True" /> </Style> <Style x:Key="ComboBoxBaseStyle" TargetType="{x:Type ComboBox}" BasedOn="{StaticResource {x:Type ComboBox}}"> <Setter Property="Margin" Value="5,2" /> <Setter Property="MaxWidth" Value="175" /> </Style> <Style TargetType="{x:Type ComboBox}" BasedOn="{StaticResource ComboBoxBaseStyle}" /> <Style x:Key="LabelBaseStyle" TargetType="{x:Type Label}" BasedOn="{StaticResource {x:Type Label}}"> <Setter Property="Margin" Value="5,2" /> </Style> <Style TargetType="{x:Type Label}" BasedOn="{StaticResource LabelBaseStyle}"/> <Style TargetType="{x:Type CheckBox}" BasedOn="{StaticResource {x:Type CheckBox}}"> <Setter Property="Margin" Value="5" /> </Style> <Style x:Key ="ViolationGradingStyleComboBox" TargetType="ComboBox" BasedOn="{StaticResource ComboBoxBaseStyle}"> <Setter Property="Visibility" Value="{Binding LookupItemsConfiguration.SupportsViolationGradings, Converter={StaticResource BooleanToVisibilityConverter}}" /> <Style.Triggers> <DataTrigger Binding="{Binding ViolationGradings.Count}" Value="0"> <Setter Property="Visibility" Value="Collapsed" /> </DataTrigger> </Style.Triggers> </Style> <Style x:Key ="ViolationGradingStyleLabel" TargetType="Label" BasedOn="{StaticResource LabelBaseStyle}"> <Setter Property="Visibility" Value="{Binding LookupItemsConfiguration.SupportsViolationGradings, Converter={StaticResource BooleanToVisibilityConverter}}" /> <Style.Triggers> <DataTrigger Binding="{Binding ViolationGradings.Count}" Value="0"> <Setter Property="Visibility" Value="Collapsed" /> </DataTrigger> </Style.Triggers> </Style> </UserControl.Resources> <dxdo:DockLayoutManager ItemsSource="{Binding Items}" Height="235" ManualClosedPanelsBarVisibility="False" ShowInvisibleItemsInCustomizationForm="False" ShowInvisibleItems="False" ClosedPanelsBarPosition="Bottom" ClosedPanelsBarVisibility="Never" x:Name="DockLayoutManager"> <dxdo:MVVMHelper.LayoutAdapter> <details:LayoutAdapter/> </dxdo:MVVMHelper.LayoutAdapter> <dxdo:DockLayoutManager.Resources> <Style TargetType="{x:Type dxdo:DocumentPanel}"> Value="10"></Setter> <Setter Property="VerticalContentAlignment" Value="Top"/> <Setter Property="CustomizationCaption" Value="{Binding Caption}"/> <Setter Property="ContentTemplate"> <Setter.Value> <DataTemplate> <Border Margin="5" Padding="5" > <Border.Background> <SolidColorBrush Color="{DynamicResource Color_05_pantone_gray_20}" /> </Border.Background> <ScrollViewer Name="ScrollViewer" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto"> <ContentControl cal:View.Model="{Binding}"/> </ScrollViewer> </Border> </DataTemplate> </Setter.Value> </Setter> <Setter Property="CaptionTemplate"> <Setter.Value> <DataTemplate> <StackPanel Orientation="Horizontal" VerticalAlignment="Top"> <Image Height="16" Margin="5,0,0,0" Source="{Binding CaptionImagePath}"/> <Label Content="{Binding Caption}" /> </StackPanel> </DataTemplate> </Setter.Value> </Setter> <Setter Property="BindableName" Value="{Binding Identifier}" /> <Style.Triggers> <DataTrigger Binding="{Binding IsVisible}" Value="false"> <Setter Property="Visibility" Value="Collapsed" /> </DataTrigger> </Style.Triggers> </Style> </dxdo:DockLayoutManager.Resources> <dxdo:DockLayoutManager.LayoutRoot> <dxdo:LayoutGroup Name="LayoutGroup"> <dxdo:DocumentGroup Name="DetailsGroup" /> </dxdo:LayoutGroup> </dxdo:DockLayoutManager.LayoutRoot> </dxdo:DockLayoutManager> </UserControl>
Та же проблема существует и для этого более простого представления:
<UserControl x:Class="Jenoptik.TS.TDSKpro.Studio.Common.Views.DocumentView" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:cal="http://www.caliburnproject.org" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" d:DesignHeight="300" d:DesignWidth="300" mc:Ignorable="d"> <TabControl x:Name="SegmentTabs" Foreground="Transparent" ItemsSource="{Binding Items}" SelectedItem="{Binding ActiveItem}"> <tabcontrol.background> <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1"> <GradientStop Offset="1" Color="#FFDEDFE0" /> <GradientStop Color="White" /> <tabcontrol.itemtemplate> <datatemplate> <TextBlock Text="{Binding DisplayName}" /> <tabcontrol.contenttemplate> <datatemplate> <ContentControl HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" cal:View.Model="{Binding}" />
Что я уже пробовал:
установка высоты везде в XAML
доступ к вкладке управления и ее вкладки и заголовки