在 Visual Studio 扩展包中,我想创建一个工具窗口(如解决方案资源管理器是一个工具窗口)并在此工具窗口中使用工具栏(如解决方案资源管理器有它自己的工具栏,带有“显示所有文件”“刷新”等)。
如果我的 ToolWindow 处于活动状态,则会为工具栏上的命令显示工具提示。如果任何其他工具窗口处于活动状态,则不会显示它们。
然而,在解决方案资源管理器中,无论工具窗口是否处于活动状态,都会显示工具提示。
单击工具栏项也是如此。即使解决方案资源管理器不是活动的工具窗口,也可以一键单击解决方案资源管理器工具栏项。
如果我的 ToolWindow 不是活动的 ToolWindow,则第一次单击会激活我的 ToolWindow,并且只有第二次单击会单击该按钮。
有谁知道如何在自定义 ToolWindows 中实现类似解决方案资源管理器行为的行为?
谢谢-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>