WPF 棱镜 - 同时显示多个弹出视图



我的外壳窗口包含来自股票交易者 RI 演示应用程序的辅助弹出窗口区域

infBehaviors:RegionPopupBehaviors.CreatePopupRegionWithName="{x:Static inf:RegionNames.SecondaryRegion}"

我正在使用区域经理的请求导航方法激活我的视图:

regionManager.RequestNavigate(RegionNames.SecondaryRegion, new Uri(FooView, UriKind.Relative));

如果我只使用单个视图,一切正常。但是,就我而言,我想一次拥有多个弹出窗口 - 就像一次有多个弹出窗口区域一样。问题似乎在于激活/停用区域内的视图。

如何"说服"不要停用我之前在区域内的观点?

知道吗?

我遇到了这个问题,我想我会扩展@Sebastjan的帖子,因为它可能会帮助某人。

使用 Stock Trader RI 演示中的代码,在 RegionPopupBehaviors 类中,RegisterNewPopupRegion 方法应如下所示:

public static void RegisterNewPopupRegion(DependencyObject owner, string regionName)
    {
        IRegionManager regionManager = ServiceLocator.Current.GetInstance<IRegionManager>();
        if (regionManager != null)
        {
            IRegion region = new AllActiveRegion(); //This was changed from SingleActiveRegion
            DialogActivationBehavior behavior;
            behavior = new WindowDialogActivationBehavior();
            behavior.HostControl = owner;
            region.Behaviors.Add(DialogActivationBehavior.BehaviorKey, behavior);
            regionManager.Regions.Add(regionName, region);
        }
    }

对于没有股票交易者应用程序代码示例的任何人,您可以在此处找到它

事实证明,解决方案比我预期的要容易。这是解决方案,以防万一,以防万一。

我只需要修改 RegionPopupBehaviors 以使用 AllActiveregion 而不是原来的 SingleActiveRegion,在 DialogActivation 中,我必须删除对 CloseContentDialog 的第一个调用。

希望有帮助。

相关内容

  • 没有找到相关文章