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>