0

ユーザーがTabControlのTabItemヘッダーをクリックしたときにコマンドを実行できるようにしようとしています。

これが私のコードです:

      <TabControl TabStripPlacement="Left" BorderThickness="1,0,0,0">
        <TabItem Selector.IsSelected="{Binding IsGeneric, Mode=OneWay}">
            <TabItem.Header>
                <Button Content="Generic" Margin="0" Command="{Binding GenericSelected}"></Button>
            </TabItem.Header>
            <V:WasteEstimationGenericView DataContext="{Binding}"></V:WasteEstimationGenericView>
        </TabItem>
        <TabItem Selector.IsSelected="{Binding IsSTP, Mode=OneWay}">
            <TabItem.Header>
                <Button Content="STP" Margin="0" Command="{Binding STPSelected}"></Button>
            </TabItem.Header>
            <V:WasteEstimationSTPView DataContext="{Binding STPViewModel}"></V:WasteEstimationSTPView>
        </TabItem>
    </TabControl>

しかし、私はこれを次のように仕上げます。 TabControlヘッダー

TabControlヘッダーがTabItemヘッダーで使用可能なすべてのスペースを消費するようにする方法を教えてもらえますか?もともとはラベルを使用してこれを実行したかったのですが、ユーザーがヘッダーの端に向かってクリックしてもコマンドが実行されないという問題がありました。ボタンを使用するよりもこれを使用したいのですが、ボタンを使用すると、ユーザーはどこをターゲットにすることができます。彼らはクリックします。

4

2 に答える 2

2

TabItemControlTemplateを変更する必要があります。具体的にはContentPresenterVerticalAlignmentHorizontalAlignmentをStretchに設定し、Margin必要なものに設定します。デフォルトは12、2、12、2です。

于 2013-02-21T23:19:14.810 に答える
0

これを試して:

<TabControl TabStripPlacement="Left" BorderThickness="1,0,0,0" HorizontalContentAlignment="Stretch">
于 2013-02-21T22:59:23.650 に答える