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



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

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

您可以使用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时通常执行的优化,但它为您提供了所需的灵活性。

最新更新