我有一个代码,在应用程序的右上角按钮,使用最小化按钮来最小化桌面应用程序。
但是,一旦它被最小化我必须做与浏览器的一些操作,并再次切换回桌面应用程序。我在这里面对代码的问题,在这里我需要点击任务栏中的应用程序按钮使其最大化。
任何人都可以请帮我在这个或任何其他方式来最大化最小化的应用程序?我不应该关闭或重新打开它,因为一些上传会正在进行。
WinPattern不再公开。相反,你可以使用一个displayState属性。 E.克.:
wnd.DisplayState= DisplayState.Maximized;
因此,经过寻找到白是如何暴露WindowPattern
我能找到的Window
类称为WinPattern
返回一个WindowPattern
公共财产。让窗口模式后,你应该能够调用WindowPattern.SetWindowVisualState
。
到WindowPattern.SetWindowVisualState
链接有如何使用此模式一些很好的示例代码。我补充说,最相关的使用白在这里,因为白色的手柄时得到的图案为你的代码。
///--------------------------------------------------------------------
/// <summary>
/// Calls the WindowPattern.SetVisualState() method for an associated
/// automation element.
/// </summary>
/// <param name="windowPattern">
/// The WindowPattern control pattern obtained from
/// an automation element.
/// </param>
/// <param name="visualState">
/// The specified WindowVisualState enumeration value.
/// </param>
///--------------------------------------------------------------------
private void SetVisualState(WindowPattern windowPattern,
WindowVisualState visualState)
{
try
{
if (windowPattern.Current.WindowInteractionState ==
WindowInteractionState.ReadyForUserInteraction)
{
switch (visualState)
{
case WindowVisualState.Maximized:
// Confirm that the element can be maximized
if ((windowPattern.Current.CanMaximize) &&
!(windowPattern.Current.IsModal))
{
windowPattern.SetWindowVisualState(
WindowVisualState.Maximized);
// TODO: additional processing
}
break;
case WindowVisualState.Minimized:
// Confirm that the element can be minimized
if ((windowPattern.Current.CanMinimize) &&
!(windowPattern.Current.IsModal))
{
windowPattern.SetWindowVisualState(
WindowVisualState.Minimized);
// TODO: additional processing
}
break;
case WindowVisualState.Normal:
windowPattern.SetWindowVisualState(
WindowVisualState.Normal);
break;
default:
windowPattern.SetWindowVisualState(
WindowVisualState.Normal);
// TODO: additional processing
break;
}
}
}
catch (InvalidOperationException)
{
// object is not able to perform the requested action
return;
}
}