1

Visual Studio拡張パッケージでツールウィンドウを作成し(ソリューションエクスプローラーがツールウィンドウのように)、このツールウィンドウ内でツールバーを使用します(ソリューションエクスプローラーに「すべてのファイルを表示」「更新」などの独自のツールバーがあるように)。

スクリーンショットを参照してください

ツールウィンドウがアクティブな場合、ツールバーのコマンドのツールチップが表示されます。他のツールウィンドウがアクティブな場合、これらは表示されません。

ただし、ソリューションエクスプローラーでは、ツールウィンドウがアクティブであるかどうかに関係なく、ツールチップが表示されます。

ツールバー項目をクリックする場合も同様です。SolutionExplorerがアクティブなToolWindowでなくても、SolutionExplorerツールバー項目はワンクリックでクリックできます。

ツールウィンドウがアクティブなツールウィンドウでない場合、最初のクリックでツールウィンドウがアクティブになり、2回目のクリックでボタンがクリックされます。

カスタムツールウィンドウでソリューションエクスプローラーの動作のような動作を実装する方法を知っている人はいますか?

ありがとう-M。

<UserControl x:Class="mklein.TestToolWindow" 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:vsfx="clr-namespace:Microsoft.VisualStudio.Shell;assembly=Microsoft.VisualStudio.Shell.10.0" mc:Ignorable="d"
             d:DesignHeight="300" d:DesignWidth="300" Name="MyToolWindow"
             Background="{DynamicResource {x:Static vsfx:VsBrushes.ToolWindowBackgroundKey}}" >

    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"></RowDefinition>
            <RowDefinition></RowDefinition>
        </Grid.RowDefinitions>

        <ToolBar Grid.Row="0"  Background="{DynamicResource {x:Static vsfx:VsBrushes.CommandBarGradientKey}}">
            <ToolBar.Items>
                <Button Command="SaveAs" ToolTip="Save new">
                    <Image Source="resources\add.png" />
                </Button>
                <!-- ... -->
            </ToolBar.Items>
        </ToolBar>

        <ListBox Grid.Row="1" x:Name="ListboxSettings"                   
                     ItemsSource="{Binding}" 
                     IsSynchronizedWithCurrentItem="True" 
                     MouseDoubleClick="ListBox_MouseDoubleClick">

        </ListBox>
    </Grid>
</UserControl>
4

1 に答える 1

2

これは、ネイティブのVisual StudioツールバーではなくWPFツールバーを作成しているためです(これはVSCTファイルを介して行われます)。

VisualStudioコマンドが配置された「ネイティブ」ツールバーをホストする方法を示すこのサンプルを見てください。これは、ツールウィンドウのVisual Studio内で新しいコマンドを作成したり、既存のコマンドを再利用したりするための推奨される方法です。これにより、ユーザーはコマンドをカスタマイズして、独自のキーバインドを指定することもできます。

于 2011-05-30T05:26:59.333 に答える