Avalonia Ui помещает UserControl в другой - PullRequest
0 голосов
/ 11 марта 2020

Мне нужно сделать что-то вроде этого кода ниже:

<UserControl x:Class="MyApp.Views.UserControls.UCMainControl" 
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:dxb="http://schemas.devexpress.com/winfx/2008/xaml/bars"
             xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
             xmlns:dxc="http://schemas.devexpress.com/winfx/2008/xaml/core"
             xmlns:dxnav="http://schemas.devexpress.com/winfx/2008/xaml/navigation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:Controls="clr-namespace:MyApp.Views.UserControls">

  <Grid>
    <Grid.RowDefinitions>
      <RowDefinition Height="Auto"/>
      <RowDefinition Height="Auto"/>
      <RowDefinition Height="*"/>
      <RowDefinition Height="140"/>
    </Grid.RowDefinitions>

    <Grid.ColumnDefinitions>
      <ColumnDefinition Width="Auto"/>
      <ColumnDefinition/>
      <ColumnDefinition Width="220"/>
    </Grid.ColumnDefinitions>

    <Controls:UCMenuPrincipal x:Name="MenuPrincipalcontrol" Grid.Row="0"/>

  </Grid>

В этом коде мне нужно поместить меню в другой UserControl, но меню находится в другом UserControl (однако это может быть что-нибудь).

Когда код в нормальном WPF, я могу это сделать. Можно ли это сделать с помощью Авалонии?

1 Ответ

0 голосов
/ 15 марта 2020

Не совсем уверен, что вы просите, но я думаю, что вы пытаетесь создать пользовательский элемент управления с меню внутри, а затем окно с этим пользовательским элементом управления.

Что-то подобное должно работать :

<Window xmlns="https://github.com/avaloniaui"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:vm="clr-namespace:MyApp.ViewModels;assembly=MyApp"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:uc="clr-namespace:MyApp.Views.UserControls;assembly=MyApp"
        mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
        x:Class="MyApp.Views.MainWindow"
        Icon="/Assets/avalonia-logo.ico"
        Title="MyApp">

    <uc:UCMainControl/>

</Window>
<UserControl xmlns="https://github.com/avaloniaui"
             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:uc="clr-namespace:MyApp.Views.UserControls;assembly=MyApp"
             mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
             x:Class="MyApp.Views.UserControls.UCMainControl">

  <Grid RowDefinitions="Auto,Auto,*,140" ColumnDefinitions="Auto,*,220">
    <uc:UCMenuPrincipal x:Name="MenuPrincipalcontrol" Grid.Row="0"/>
  </Grid>

</UserControl>
<UserControl xmlns="https://github.com/avaloniaui"
             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"
             mc:Ignorable="d"
             x:Class="MyApp.Views.UserControls.UCMenuPrincipal">

  <Menu Background="AliceBlue">
    <MenuItem Header="File"/>
    <MenuItem Header="Edit"/>
    <MenuItem Header="Help"/>
  </Menu>

</UserControl>

окно результатов

...