首页 > 解决方案 > VssClientCredentials Interactive Popup 缩小 Windows.Forms 元素?

问题描述

我正在设计一个 WinForms 应用程序,并且我最近添加了连接到 Azure Devops 以获取测试套件/案例列表的功能。

VssClientCredentials vcc = new VssClientCredentials(false);
connection = new VssConnection(new Uri(azureDevOpsOrganizationUrl), vcc);

当这些行运行时,整个表单会缩小(包括文本大小、按钮和框架大小)并保持缩小(不是最小化,如 1/4 大小)。请注意,它会随着表单的最小尺寸设置而变小。

这是前后表格大小的并排比较: https ://i.imgur.com/sa9iBAU.png

我还注意到,当我从图片中编辑一些识别信息时,框架左上角的标题在缩小时也消失了。

最好我能弄明白,这条线

VssClientCredentials vcc = new VssClientCredentials(false);

是触发收缩的线。我认为这可能是它试图调用的弹出窗口的某些功能,但我不太确定为什么。

    private void AzureButton_Click (object sender, EventArgs e)
    {
        GetAzureNodes();
    }

    private async void GetAzureNodes()
    {
        AzureConnection azureConn = new AzureConnection(); //<----- Focus Here
        await azureConn.getConnection();
        if (azureConn.isConnected())
        {
            //Stuff
        }
    }
    public AzureConnection() //<----- Focus here
    {
        // Set false to require login popup every time.
        VssClientCredentials vcc = new VssClientCredentials(false);

        connection = new VssConnection(new Uri(azureDevOpsOrganizationUrl), vcc);
    }
    public async Task<int> getConnection()
    {
        await connection.ConnectAsync();
        return 0;
    }

有人知道如何防止或消除收缩吗?或者甚至为什么它会发生?

标签: c#winformsazure-devops

解决方案


通过添加具有以下内容的 app.manifest 文件解决了问题。

<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>

  <asmv3:application>
    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
     <!--
        Trying to generate the WPF Azure Login Page on a Winforms project suddenly made the app self-awar- I mean, aware of DPI.
        That caused it to suddenly shrink. This setting stops that.
      -->
      <dpiAware>false</dpiAware>
    </asmv3:windowsSettings>
  </asmv3:application>

</asmv1:assembly>

我在这个问题中找到了答案:https ://stackoverflow.com/a/36344413/9866316


推荐阅读