XAML Islands で全ての UWP コントロールは使えなさそうな雰囲気だったので、Windows.UI.Xaml.Controls 名前空間のそれらしいクラスを画面に配置してみました。
UWP のコントロールは 100 以上あるらしく全ては把握押していないので画面に配置してエラーになるかならないかだけが判断基準です。
また、他にも UIElement はありそうな気もしますが一歩目の検証として試してみました。
■ 結果
全てではありませんでしたが大多数がエラーなく配置できました。
■ エラーにならなかったコントロール
- AppBar
- AppBarButton
- AppBarElementContainer
- AppBarSeparator
- AppBarToggleButton
- AutoSuggestBox
- BitmapIcon
- Border
- Button
- CalendarDatePicker
- CalendarView
- Canvas
- CaptureElement
- CheckBox
- ComboBox
- ComboBoxItem
- CommandBar
- CommandBarOverflowPresenter
- ContentControl
- ContentDialog
- ContentPresenter
- DatePicker
- DropDownButton
- FlipView
- FlipViewItem
- FlyoutPresenter
- FontIcon
- Frame
- Grid
- GridView
- GridViewHeaderItem
- GridViewItem
- GroupItem
- Hub
- HubSection
- HyperlinkButton
- IconSourceElement
- Image
- InkCanvas
- InkToolbar
- InkToolbarBallpointPenButton
- InkToolbarCustomPenButton
- InkToolbarCustomToggleButton
- InkToolbarCustomToolButton
- InkToolbarEraserButton
- InkToolbarFlyoutItem
- InkToolbarHighlighterButton
- InkToolbarPencilButton
- InkToolbarPenConfigurationControl
- InkToolbarStencilButton
- ItemsControl
- ItemsPresenter
- ItemsStackPanel
- ItemsWrapGrid
- ListBox
- ListBoxItem
- ListView
- ListViewHeaderItem
- ListViewItem
- Maps.MapControl
- MediaElement
- MediaPlayerElement
- MediaPlayerPresenter
- MediaTransportControls
- MenuBar
- MenuBarItem
- MenuFlyoutItem
- MenuFlyoutPresenter
- MenuFlyoutSeparator
- MenuFlyoutSubItem
- NavigationView
- NavigationViewItem
- NavigationViewItemSeparator
- NavigationViewList
- Page
- ParallaxView
- PasswordBox
- PathIcon
- Pivot
- PivotItem
- ProgressBar
- ProgressRing
- RadioButton
- RatingControl
- RefreshContainer
- RelativePanel
- RichEditBox
- RichTextBlock
- ScrollContentPresenter
- ScrollViewer
- SemanticZoom
- SettingsFlyout
- Slider
- SplitButton
- SplitView
- StackPanel
- SwapChainPanel
- SymbolIcon
- TextBlock
- TextBox
- TimePicker
- ToggleMenuFlyoutItem
- ToggleSplitButton
- ToggleSwitch
- ToolTip
- TreeView
- TreeViewItem
- TreeViewList
- UserControl
- VariableSizedWrapGrid
- Viewbox
- VirtualizingStackPanel
- WebView
■ 検証コード
<Window x:Class="WpfApp1.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:WpfApp1" mc:Ignorable="d" Title="Window1" Height="450" Width="800"> <Grid x:Name="grid"> </Grid> </Window>
using System; using System.Collections.Generic; using System.Windows; namespace WpfApp1 { public partial class Window1 : Window { public Window1() { InitializeComponent(); try { global::Windows.UI.Xaml.Hosting.WindowsXamlManager.InitializeForCurrentThread(); var list = new List<Windows.UI.Xaml.UIElement>(); { list.Add(new Windows.UI.Xaml.Controls.AppBar()); list.Add(new Windows.UI.Xaml.Controls.AppBarButton()); list.Add(new Windows.UI.Xaml.Controls.AppBarElementContainer()); list.Add(new Windows.UI.Xaml.Controls.AppBarSeparator()); list.Add(new Windows.UI.Xaml.Controls.AppBarToggleButton()); list.Add(new Windows.UI.Xaml.Controls.AutoSuggestBox()); list.Add(new Windows.UI.Xaml.Controls.BitmapIcon()); list.Add(new Windows.UI.Xaml.Controls.Border()); list.Add(new Windows.UI.Xaml.Controls.Button()); list.Add(new Windows.UI.Xaml.Controls.CalendarDatePicker()); list.Add(new Windows.UI.Xaml.Controls.CalendarView()); //list.Add(new Windows.UI.Xaml.Controls.CalendarViewDayItem()); list.Add(new Windows.UI.Xaml.Controls.Canvas()); list.Add(new Windows.UI.Xaml.Controls.CaptureElement()); list.Add(new Windows.UI.Xaml.Controls.CheckBox()); //list.Add(new Windows.UI.Xaml.Controls.ColorPicker()); list.Add(new Windows.UI.Xaml.Controls.ComboBox()); list.Add(new Windows.UI.Xaml.Controls.ComboBoxItem()); list.Add(new Windows.UI.Xaml.Controls.CommandBar()); list.Add(new Windows.UI.Xaml.Controls.CommandBarOverflowPresenter()); list.Add(new Windows.UI.Xaml.Controls.ContentControl()); list.Add(new Windows.UI.Xaml.Controls.ContentDialog()); list.Add(new Windows.UI.Xaml.Controls.ContentPresenter()); list.Add(new Windows.UI.Xaml.Controls.DatePicker()); list.Add(new Windows.UI.Xaml.Controls.DropDownButton()); list.Add(new Windows.UI.Xaml.Controls.FlipView()); list.Add(new Windows.UI.Xaml.Controls.FlipViewItem()); list.Add(new Windows.UI.Xaml.Controls.FlyoutPresenter()); list.Add(new Windows.UI.Xaml.Controls.FontIcon()); list.Add(new Windows.UI.Xaml.Controls.Frame()); list.Add(new Windows.UI.Xaml.Controls.Grid()); list.Add(new Windows.UI.Xaml.Controls.GridView()); list.Add(new Windows.UI.Xaml.Controls.GridViewHeaderItem()); list.Add(new Windows.UI.Xaml.Controls.GridViewItem()); list.Add(new Windows.UI.Xaml.Controls.GroupItem()); //list.Add(new Windows.UI.Xaml.Controls.HandwritingView()); list.Add(new Windows.UI.Xaml.Controls.Hub()); list.Add(new Windows.UI.Xaml.Controls.HubSection()); list.Add(new Windows.UI.Xaml.Controls.HyperlinkButton()); list.Add(new Windows.UI.Xaml.Controls.IconSourceElement()); list.Add(new Windows.UI.Xaml.Controls.Image()); list.Add(new Windows.UI.Xaml.Controls.InkCanvas()); list.Add(new Windows.UI.Xaml.Controls.InkToolbar()); list.Add(new Windows.UI.Xaml.Controls.InkToolbarBallpointPenButton()); list.Add(new Windows.UI.Xaml.Controls.InkToolbarCustomPenButton()); list.Add(new Windows.UI.Xaml.Controls.InkToolbarCustomToggleButton()); list.Add(new Windows.UI.Xaml.Controls.InkToolbarCustomToolButton()); list.Add(new Windows.UI.Xaml.Controls.InkToolbarEraserButton()); list.Add(new Windows.UI.Xaml.Controls.InkToolbarFlyoutItem()); list.Add(new Windows.UI.Xaml.Controls.InkToolbarHighlighterButton()); list.Add(new Windows.UI.Xaml.Controls.InkToolbarPencilButton()); list.Add(new Windows.UI.Xaml.Controls.InkToolbarPenConfigurationControl()); list.Add(new Windows.UI.Xaml.Controls.InkToolbarStencilButton()); list.Add(new Windows.UI.Xaml.Controls.ItemsControl()); list.Add(new Windows.UI.Xaml.Controls.ItemsPresenter()); list.Add(new Windows.UI.Xaml.Controls.ItemsStackPanel()); list.Add(new Windows.UI.Xaml.Controls.ItemsWrapGrid()); list.Add(new Windows.UI.Xaml.Controls.ListBox()); list.Add(new Windows.UI.Xaml.Controls.ListBoxItem()); list.Add(new Windows.UI.Xaml.Controls.ListView()); list.Add(new Windows.UI.Xaml.Controls.ListViewHeaderItem()); list.Add(new Windows.UI.Xaml.Controls.ListViewItem()); list.Add(new Windows.UI.Xaml.Controls.Maps.MapControl()); list.Add(new Windows.UI.Xaml.Controls.MediaElement()); list.Add(new Windows.UI.Xaml.Controls.MediaPlayerElement()); list.Add(new Windows.UI.Xaml.Controls.MediaPlayerPresenter()); list.Add(new Windows.UI.Xaml.Controls.MediaTransportControls()); list.Add(new Windows.UI.Xaml.Controls.MenuBar()); list.Add(new Windows.UI.Xaml.Controls.MenuBarItem()); list.Add(new Windows.UI.Xaml.Controls.MenuFlyoutItem()); list.Add(new Windows.UI.Xaml.Controls.MenuFlyoutPresenter()); list.Add(new Windows.UI.Xaml.Controls.MenuFlyoutSeparator()); list.Add(new Windows.UI.Xaml.Controls.MenuFlyoutSubItem()); list.Add(new Windows.UI.Xaml.Controls.NavigationView()); list.Add(new Windows.UI.Xaml.Controls.NavigationViewItem()); list.Add(new Windows.UI.Xaml.Controls.NavigationViewItemSeparator()); list.Add(new Windows.UI.Xaml.Controls.NavigationViewList()); list.Add(new Windows.UI.Xaml.Controls.Page()); list.Add(new Windows.UI.Xaml.Controls.ParallaxView()); list.Add(new Windows.UI.Xaml.Controls.PasswordBox()); list.Add(new Windows.UI.Xaml.Controls.PathIcon()); list.Add(new Windows.UI.Xaml.Controls.Pivot()); list.Add(new Windows.UI.Xaml.Controls.PivotItem()); list.Add(new Windows.UI.Xaml.Controls.ProgressBar()); list.Add(new Windows.UI.Xaml.Controls.ProgressRing()); list.Add(new Windows.UI.Xaml.Controls.RadioButton()); list.Add(new Windows.UI.Xaml.Controls.RatingControl()); list.Add(new Windows.UI.Xaml.Controls.RefreshContainer()); list.Add(new Windows.UI.Xaml.Controls.RelativePanel()); list.Add(new Windows.UI.Xaml.Controls.RichEditBox()); list.Add(new Windows.UI.Xaml.Controls.RichTextBlock()); list.Add(new Windows.UI.Xaml.Controls.ScrollContentPresenter()); list.Add(new Windows.UI.Xaml.Controls.ScrollViewer()); list.Add(new Windows.UI.Xaml.Controls.SemanticZoom()); list.Add(new Windows.UI.Xaml.Controls.SettingsFlyout()); list.Add(new Windows.UI.Xaml.Controls.Slider()); list.Add(new Windows.UI.Xaml.Controls.SplitButton()); list.Add(new Windows.UI.Xaml.Controls.SplitView()); list.Add(new Windows.UI.Xaml.Controls.StackPanel()); //list.Add(new Windows.UI.Xaml.Controls.SwapChainBackgroundPanel()); list.Add(new Windows.UI.Xaml.Controls.SwapChainPanel()); //list.Add(new Windows.UI.Xaml.Controls.SwipeControl()); list.Add(new Windows.UI.Xaml.Controls.SymbolIcon()); list.Add(new Windows.UI.Xaml.Controls.TextBlock()); list.Add(new Windows.UI.Xaml.Controls.TextBox()); list.Add(new Windows.UI.Xaml.Controls.TimePicker()); list.Add(new Windows.UI.Xaml.Controls.ToggleMenuFlyoutItem()); list.Add(new Windows.UI.Xaml.Controls.ToggleSplitButton()); list.Add(new Windows.UI.Xaml.Controls.ToggleSwitch()); list.Add(new Windows.UI.Xaml.Controls.ToolTip()); list.Add(new Windows.UI.Xaml.Controls.TreeView()); list.Add(new Windows.UI.Xaml.Controls.TreeViewItem()); list.Add(new Windows.UI.Xaml.Controls.TreeViewList()); list.Add(new Windows.UI.Xaml.Controls.UserControl()); list.Add(new Windows.UI.Xaml.Controls.VariableSizedWrapGrid()); list.Add(new Windows.UI.Xaml.Controls.Viewbox()); list.Add(new Windows.UI.Xaml.Controls.VirtualizingStackPanel()); list.Add(new Windows.UI.Xaml.Controls.WebView()); //list.Add(new Windows.UI.Xaml.Controls.WrapGrid()); }; Windows.UI.Xaml.Controls.StackPanel stackPanel; grid.Children.Add(new Microsoft.Toolkit.Wpf.UI.XamlHost.WindowsXamlHost { Child = new Windows.UI.Xaml.Controls.ScrollViewer { Content = stackPanel = new Windows.UI.Xaml.Controls.StackPanel() } }); foreach (var c in list) { stackPanel.Children.Add(c); } } catch (Exception ex) { Console.WriteLine(ex); } } } }