首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从TabPanel ActualWidth获得TabControl

如何从TabPanel ActualWidth获得TabControl
EN

Stack Overflow用户
提问于 2015-03-16 06:12:06
回答 1查看 436关注 0票数 0

我有一个制表机和标签条放置在左边。因此,它是一个简单的导航菜单类型的选项卡控件。TabControl的控件模板中有一个TabPanel。

代码语言:javascript
复制
<ControlTemplate TargetType="{x:Type TabControl}">
       <Grid x:Name="Grid" ClipToBounds="true" SnapsToDevicePixels="true" KeyboardNavigation.TabNavigation="Local">
               <Grid.ColumnDefinitions>
                   <ColumnDefinition x:Name="ColumnDefinition0"/>
                   <ColumnDefinition x:Name="ColumnDefinition1" Width="0"/>
               </Grid.ColumnDefinitions>
               <Grid.RowDefinitions>
                   <RowDefinition x:Name="RowDefinition0" Height="Auto"/>
                   <RowDefinition x:Name="RowDefinition1" Height="*"/>
               </Grid.RowDefinitions>
               <Border x:Name="ContentPanel" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Grid.Column="0" KeyboardNavigation.DirectionalNavigation="Contained" Grid.Row="1" KeyboardNavigation.TabIndex="2" KeyboardNavigation.TabNavigation="Local" Padding="{TemplateBinding Padding}" Margin="0,-1,0,0">
                   <ContentPresenter x:Name="PART_SelectedContentHost" ContentSource="SelectedContent" Margin="{TemplateBinding Padding}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
               </Border>
               <ScrollViewer x:Name="scroll" VerticalScrollBarVisibility="Disabled" HorizontalScrollBarVisibility="Auto" Template="{StaticResource ScrollViewerTab}">
                   <TabPanel x:Name="HeaderPanel" IsItemsHost="true" Margin="0,2,0,0" KeyboardNavigation.TabIndex="1" Panel.ZIndex="1" VerticalAlignment="Bottom" />
               </ScrollViewer>
           </Grid>
    </ControlTemplate>

为了对齐目的,我需要TabPanel的(选项卡标题)外部的ActualWidth。

我试着跟着做,但没有用。

代码语言:javascript
复制
<TextBlock Text="{Binding Path=Actualwidth, ElementName=HeaderPanel}" />
<TabControl />

我还试图将标头面板的ActualWidth绑定到TabControl的标记属性。即使这样也不起作用。

代码语言:javascript
复制
<TabControl Tag="{Binding Path=ActualWidth, ElementName=HeaderPanel}" />

TabControls.Items集合提供了ViewModel对象的列表。因此,我无法获得TabItem实例。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-18 09:09:15

最后,我在代码隐藏文件中使用了可视化树帮助器。

代码语言:javascript
复制
var tabPanel = VisualTreeHelpers.FindChild<TabPanel>(TabControl, "MenuPanel");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29070568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档