2012-01-06 87 views
3

我试图自动化流利的功能区控件(www.fluent.codeplex.com)。我成功地将大部分控件自动化。但有一个问题,如关闭,最大化和最小化按钮不被UI自动化工具识别或识别,例如使用Visual Studio的编码UI测试。间谍工具不识别关闭,最大化,最小化等按钮。我无法通过自动化关闭应用程序(使用流畅的功能区)。在Fluent(Codeplex)功能区中自动关闭,最大化和最小化功能区 - WPF应用程序

我在RibbonWindow.xaml

<StackPanel x:Name="PART_ButtonsPanel" HorizontalAlignment="Right" Margin="0,8,8,0" VerticalAlignment="Top" Orientation="Horizontal"> 
      <Button x:Name="minimizeButton" Style="{DynamicResource CaptionButtonStyle}" Width="35" Height="19" BorderThickness="1,0,0,1" Command="{x:Static Fluent:RibbonWindow.MinimizeCommand}"> 
      <Image Width="Auto" Height="Auto" HorizontalAlignment="Center" VerticalAlignment="Center" Stretch="None" Source="{DynamicResource ImageCaptionButtonMinimize}" SnapsToDevicePixels="True" RenderOptions.BitmapScalingMode="NearestNeighbor"/> 
      </Button> 
      <Button x:Name="maximizeButton" Margin="-1,0,0,0" Style="{DynamicResource CaptionButtonStyle}" Width="35" Height="19" BorderThickness="0,0,0,1" Command="{x:Static Fluent:RibbonWindow.MaximizeCommand}"> 
      <Image Width="Auto" Height="Auto" HorizontalAlignment="Center" VerticalAlignment="Center" Stretch="None" Source="{DynamicResource ImageCaptionButtonMaximize}" SnapsToDevicePixels="True" RenderOptions.BitmapScalingMode="NearestNeighbor"/> 
      </Button> 
      <Button x:Name="normalizeButton" Margin="-1,0,0,0" Style="{DynamicResource CaptionButtonStyle}" Width="35" Height="19" BorderThickness="0,0,0,1" Command="{x:Static Fluent:RibbonWindow.NormalizeCommand}"> 
      <Image Width="Auto" Height="Auto" HorizontalAlignment="Center" VerticalAlignment="Center" Stretch="None" Source="{DynamicResource ImageCaptionButtonNormalize}" SnapsToDevicePixels="True" RenderOptions.BitmapScalingMode="NearestNeighbor"/> 
      </Button> 
      <Button x:Name="closeButton" Margin="-1,0,0,0" Style="{DynamicResource CaptionButtonStyle}" Width="35" Height="19" BorderThickness="0,0,1,1" Background="Red" Command="{x:Static Fluent:RibbonWindow.CloseCommand}"> 
      <Image Width="Auto" Height="Auto" HorizontalAlignment="Center" VerticalAlignment="Center" Stretch="None" Source="{DynamicResource ImageCaptionButtonClose}" SnapsToDevicePixels="True" RenderOptions.BitmapScalingMode="NearestNeighbor"/> 
      </Button> 
     </StackPanel> 

看着下面的代码段我试过很多的东西(像把自动化标识),但没有奏效。我在看代码的错误部分?

有人可以帮助把自动化用户界面或名称放在关闭按钮或通过为什么我可以解决问题的一些变化?唯一的要求是应用程序的“关闭”,“最大化”,“最小化”按钮应通过UI自动化工具进行识别。

问候

+0

任何解决方案?我已将此报告给Codeplex,但尚未回复。 – user1134352 2012-01-06 20:06:54

回答

0

这不会帮助您识别按键,但你可以尝试发送标准的键盘快捷方式窗口实际执行的操作:

//close the window 
Keyboard.SendKeys(myWindow, "{F4}", ModifierKeys.Alt); 
+0

我可以像关闭应用程序一样:文件 - >退出。但是我的要求是通过自动化工具和一些自动化UID或名称来识别功能区窗口的关闭,最大化和最小化按钮。所以,点击关闭按钮应该可以通过像Visual Studio这样的自动化工具来工作。 – user1134352 2012-01-07 08:08:48

0

您可以尝试Automation Spy了第二次检查。如果UI自动化没有给你任何东西,你可以尝试发送(参见SendMessage)Win32消息,如WM_CLOSE到控制窗口,并且可以使用参数SW_MAXIMIZE,SW_MINIMIZE的ShowWindow函数。