C# C-如何使X509Certificate2UI窗口始终位于顶部

C# C-如何使X509Certificate2UI窗口始终位于顶部,c#,.net,x509certificate,C#,.net,X509certificate,是否可以使X509Certificate2UI窗口始终位于顶部,或以任何其他方式选择窗口位于顶部的证书?我使用的是X509Certificate2UI.SelectFromCollection method如果将句柄传递给显示窗口的函数的父窗口,则可以使窗口保持在父窗口的顶部,即需要使用以下方法重载,其中hwndParent设置为打开窗口的句柄: public static X509Certificate2Collection SelectFromCollection( X509Cert

是否可以使X509Certificate2UI窗口始终位于顶部,或以任何其他方式选择窗口位于顶部的证书?我使用的是X509Certificate2UI.SelectFromCollection method

如果将句柄传递给显示窗口的函数的父窗口,则可以使窗口保持在父窗口的顶部,即需要使用以下方法重载,其中hwndParent设置为打开窗口的句柄:

public static X509Certificate2Collection SelectFromCollection(
    X509Certificate2Collection certificates,
    string title,
    string message,
    X509SelectionFlag selectionFlag,
    IntPtr hwndParent
)
在Windows窗体中,只需从窗体的handle属性获取句柄:

IntPtr windowHandle = form.Handle;
如果您使用的是WPF,则需要使用WindowInteropHelper类来检索句柄:

IntPtr windowHandle = new WindowInteropHelper(Application.Current.MainWindow).Handle;

如何显示窗口?如果窗口位于父窗口的顶部没有问题,则可以使用获取父窗口句柄的重载I use X509Certificate2UI.SelectFromCollection方法该方法还附带获取父窗口句柄的重载。您是否正在使用该重载?是否有任何方法将“选择证书”对话框放置在父窗体的中心?