如何将菜单控件拉伸到WPF中的TabHeader?

时间:2018-03-04 20:26:09

标签: c# wpf vb.net xaml

以下XAML代码可满足您的测试需求。

<Window x:Class="MainWindow" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
x:Name="MainWindow" Title="MainWindow" 
Height="200" Width="300">

<Grid>
    <TabControl>
        <TabItem Height="40" Width="50" Margin="0" Padding="0">
            <TabItem.Header>
                <Menu Height="40" Width="50" Margin="0" Padding="0">
                    <MenuItem Height="40" Width="50" Header="File" Margin="0" Padding="0" Background="Red">
                        <MenuItem Header="About"/>
                        <MenuItem Header="Help"/>
                        <MenuItem Header="Print"/>
                    </MenuItem>
                </Menu>
            </TabItem.Header>
            <Label Content="No content here because this Tab will not use."/>
        </TabItem>
        <TabItem Height="40" Width="50" Header="Spain" IsSelected="True">
            <Label Content="Some content for Spain"/>
        </TabItem>
        <TabItem Height="40" Width="50" Header="France">
            <Label Content="Some content for France"/>
        </TabItem>
        <TabItem Height="40" Width="50" Header="Italy">
            <Label Content="Some content for Italy"/>
        </TabItem>
    </TabControl>
</Grid>
</Window>

问题图片:https://prnt.sc/imvkfk

我尝试了以下链接,但它不起作用。

http://www.techerator.com/2011/05/how-to-stretch-a-menu-control-to-the-width-of-a-window-in-wpf/

P.S。我想要精确伸展。我希望用户无法用鼠标单击TabHeader。

1 个答案:

答案 0 :(得分:0)

我觉得我对你想要实现的目标感到有些困惑,但是你在尝试这样的事吗?用这个替换你的第一个TabItem的代码。如果这是你想要的,请告诉我。如果它不仅仅是进一步解释,我们可以进行调整。

<TabItem Height="40" Width="50" Margin="-3" Padding="0">
            <TabItem.Header>
                <Grid  Height="100" Width="100">
                    <Menu Margin="0" Padding="0">
                        <MenuItem Header="File" Margin="0" Padding="0" Background="Red">
                            <MenuItem Header="About"/>
                            <MenuItem Header="Help"/>
                            <MenuItem Header="Print"/>
                        </MenuItem>
                    </Menu>
                </Grid>

            </TabItem.Header>
            <Label Content="No content here because this Tab will not use."/>
</TabItem>

我只是简单地将你的菜单包裹在网格中,但需要更多控制权。