繁体   English   中英

如何在wpf中的tabitem上拉伸标签

[英]How to make label stretch on tabitem in wpf

当我尝试在作为TabItem标头内容的Label上使用click事件时遇到问题。

   <TabItem Name="prod" MouseLeftButtonDown="prod_MouseLeftButtonDown">
          <TabItem.Header >
                <Label Content="Prod" MouseLeftButtonDown="prod_MouseLeftButtonDown" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
          </TabItem.Header>

问题是Label不会占据整个TabItem标头,因此,如果用户单击标头的空白,则不会触发Click事件。

在此处输入图片说明

您可以看到,我希望红线现在没有空格。

我该如何解决?

谢谢

您可以做的最简单的事情是应用一些负的Margin并用Padding补充。 ContentPresenter总是有硬编码的边距。 因此,一旦调整好Margin (例如通过反复试验),这种方法就应该能够始终如一地工作。 Padding为正,并且具有Margin的反值。 这是我尝试过的方法,它对我有用,您可以根据需要调整边距:

<Label Content="Prod" MouseLeftButtonDown="prod_MouseLeftButtonDown" 
       HorizontalAlignment="Stretch" VerticalAlignment="Stretch" 
        Margin="-8,-3,-8,-3" Padding="8,3,8,3"/>

如果没有这样的调整, 除非复制并修改TabControl的标准模板, 否则就无法轻松更改硬编码的Margin

只需在TabItem本身上触发MouseLeftButtonDown事件即可,而不是在标签上触发...

   <TabItem Name="prod" MouseLeftButtonDown="prod_MouseLeftButtonDown">
      <TabItem.Header >
            <Label Content="Prod"  HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
      </TabItem.Header>
 </TabItem>

尝试将标签的heightwidth属性设置为Auto

 <Label Height="Auto" Width="Auto" Content="Prod" MouseLeftButtonDown="prod_MouseLeftButtonDown" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />

参见msdn :width属性

获取或设置控件的宽度。(继承自Control。)

和height属性

获取或设置控件的高度。(继承自Control。)

您可以访问ContentPresenter本身并进行相应的修改。 您也可以看中并将其用作所有TabItems的样式。

    <TabControl Width="500">
        <TabControl.Items>
            <TabItem>
                <TabItem.Header>
                    Prod
                </TabItem.Header>
                <TabItem.HeaderTemplate>
                    <DataTemplate>
                        <ContentPresenter Margin="-8, -3, -8, 0" >
                            <ContentPresenter.Content>
                                <TextBlock MouseLeftButtonDown="prod_MouseLeftButtonDown" Text="{TemplateBinding Content}"/>
                            </ContentPresenter.Content>
                        </ContentPresenter>
                    </DataTemplate>
                </TabItem.HeaderTemplate>
            </TabItem>
        </TabControl.Items>
    </TabControl>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM