Uno - 在运行时动态加载布局

Uno - Load layout dynamically during runtime

有没有办法在运行时动态加载屏幕布局?

我希望能够从配置中加载屏幕布局,而无需重新编译整个应用程序。

您可以使用 XamlReader 在运行时动态加载 XAML 布局。一个简单的例子:

        private void Add_Ellipse(object sender, RoutedEventArgs e)
        {
            var xaml = "<Ellipse Name=\"EllipseAdded\" Width=\"300.5\" Height=\"200\" Fill =\"Red\" xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"/>";
            var ellipse = Windows.UI.Xaml.Markup.XamlReader.Load(xaml) as UIElement;
            var host = (sender as FrameworkElement).Parent as Panel;
            host.Children.Add(ellipse);
        }

请注意,如果您以这种方式加载所有布局,您可能会注意到页面加载时间,因为 XAML 需要被解析,并且您还错过了通常在 XAML 在编译时已知,但它为您提供了所需的灵活性。