gpt4 book ai didi

c# - 如何将导出的 View 放置到另一个导出的 View 的特定位置?

转载 作者:行者123 更新时间:2023-12-03 10:31:37 24 4
gpt4 key购买 nike

我正在尝试通过使用两个导出的 View 来创建工具栏。第一个 View 具有按钮A,D,E,第二个 View 具有按钮B,C。我想通过将两个 View 都放到新 View 中来创建工具栏。问题是如何将第二个 View 放在按钮A之后的第一个 View 内。

所以,按钮的排列应该像

A,B,C,D,E (Expected Arrangement)



这是将其并排放置的工作代码,即

A,D,E,B,C



这是将放置两个 View 的用户控件
ToolbarView.xaml
<UserControl x:Class="Dummy.Views.ToolbarView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:prism="http://prismlibrary.com/"
mc:Ignorable="d">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width ="0.5*"/>
<ColumnDefinition Width ="0.5*"/>
</Grid.ColumnDefinitions>
<ContentControl prism:RegionManager.RegionName="RegionForFirstView"/>
<ContentControl Grid.Column="1" prism:RegionManager.RegionName="RegionForSecondView"/>
</Grid>

这是将获取导出的 View 并构造工具栏的代码:
        ToolbarView toolbarView = new ToolbarView();
var scopedRegionManager = _myRegionManager.CreateRegionManager();
RegionManager.SetRegionManager(toolbarView, scopedRegionManager);
navParams.Add("regionManager", scopedRegionManager);
scopedRegionManager.RequestNavigate("RegionForFirstView", "ExportedView1", navParams);
scopedRegionManager.RequestNavigate("RegionForSecondView", "ExportedView2", navParams);
ToolbarContent = toolbarView;

最佳答案

内容控件的默认区域适配器无法执行此操作。

您有两种选择:

  • 在项目控件中创建工具栏区域,并为每个按钮创建一个 View ,并为其指定一个索引,该索引用于按正确的顺序放置按钮
  • 从管理订单的定制服务中获取按钮,并使用包含项控件的 View 在内容控件中显示按钮

  • 如果按钮是静态的,并且仅由配置决定,那么我会选择选项二,因为它很简单。如果按钮是动态变化的,我猜第一个选项更有意义。如果您不需要动态删除按钮,那是因为您不能取消区域 View 的导航。

    关于c# - 如何将导出的 View 放置到另一个导出的 View 的特定位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60090720/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com