Приложения WPF. Core 3.0 и библиотека управления лентами Microsoft 4.0 - PullRequest
0 голосов
/ 03 ноября 2019

Здравствуйте. Я попытался создать приложение, используя WPF, .Netcore 3.0 и библиотеку управления лентами Microsoft 4.0, и это не удалось.

Мне нужна помощь или пример в Интернете. Я посмотрел Microsoft WPF-Sample на GitHub, но не нашел образец ленты, работающий на .netcore 3.0

MainWindow.Xaml

<Window x:Class="WpfDoNetcore3.MainWindow"
        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:ribbon="clr-namespace:Microsoft.Windows.Controls.Ribbon;assembly=RibbonControlsLibrary"
        xmlns:local="clr-namespace:WpfDoNetcore3"
        mc:Ignorable="d"
        x:Name="RibbonWindow"
        Title="MainWindow" Height="450" Width="800">

    <Grid x:Name="LayoutRoot">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>

        <ribbon:Ribbon x:Name="Ribbon" Title="Ribbon Title">
            <ribbon:Ribbon.HelpPaneContent>
                <ribbon:RibbonButton SmallImageSource="Images\Smallicon.png" />
            </ribbon:Ribbon.HelpPaneContent>
            <ribbon:Ribbon.QuickAccessToolBar>
                <ribbon:RibbonQuickAccessToolBar >
                    <ribbon:RibbonButton x:Name="QATButton1" 
                                         SmallImageSource="Images\Smallicon.png" />
                    <ribbon:RibbonButton x:Name="QATButton2" 
                                         SmallImageSource="Images\Smallicon.png" />
                </ribbon:RibbonQuickAccessToolBar>
            </ribbon:Ribbon.QuickAccessToolBar>
            <ribbon:Ribbon.ApplicationMenu>
                <ribbon:RibbonApplicationMenu SmallImageSource="Images\Smallicon.png">
                    <ribbon:RibbonApplicationMenuItem Header="Hello _Ribbon"
                                                      x:Name="MenuItem1"
                                                      ImageSource="Images\Largeicon.png"/>
                </ribbon:RibbonApplicationMenu>
            </ribbon:Ribbon.ApplicationMenu>
            <ribbon:RibbonTab x:Name="HomeTab" 
                              Header="Home">
                <ribbon:RibbonGroup x:Name="Group1" 
                                    Header="Group1">
                    <ribbon:RibbonButton x:Name="Button1"
                                         LargeImageSource="Images\Largeicon.png"
                                         Label="Button1" />
                    <ribbon:RibbonButton x:Name="Button2"
                                         SmallImageSource="Images\Smallicon.png"
                                         Label="Button2" />
                    <ribbon:RibbonButton x:Name="Button3"
                                         SmallImageSource="Images\Smallicon.png"
                                         Label="Button3" />
                    <ribbon:RibbonButton x:Name="Button4"
                                         SmallImageSource="Images\Smallicon.png"
                                         Label="Button4" />
                </ribbon:RibbonGroup>
            </ribbon:RibbonTab>
        </ribbon:Ribbon>
    </Grid>

</Window>

Mainwindow.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Controls.Ribbon;

namespace WpfDoNetcore3
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {


            InitializeComponent();
        }
    }
}

Ссылка: Проект Github

1 Ответ

1 голос
/ 04 ноября 2019

Просто удалите объявление пространства имен xmlns:ribbon и префикс ribbon: из своего XAML и попробуйте собрать:

<Window x:Class="WpfDoNetcore3.MainWindow"
        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"
        mc:Ignorable="d"
        x:Name="RibbonWindow"
        Title="MainWindow" Height="450" Width="800">
    <Grid x:Name="LayoutRoot">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>

        <Ribbon x:Name="Ribbon" Title="Ribbon Title">
            <Ribbon.HelpPaneContent>
                <RibbonButton SmallImageSource="Images\Smallicon.png" />
            </Ribbon.HelpPaneContent>
            <Ribbon.QuickAccessToolBar>
                <RibbonQuickAccessToolBar >
                    <RibbonButton x:Name="QATButton1" 
                                         SmallImageSource="Images\Smallicon.png" />
                    <RibbonButton x:Name="QATButton2" 
                                         SmallImageSource="Images\Smallicon.png" />
                </RibbonQuickAccessToolBar>
            </Ribbon.QuickAccessToolBar>
            <Ribbon.ApplicationMenu>
                <RibbonApplicationMenu SmallImageSource="Images\Smallicon.png">
                    <RibbonApplicationMenuItem Header="Hello _Ribbon"
                                                      x:Name="MenuItem1"
                                                      ImageSource="Images\Largeicon.png"/>
                </RibbonApplicationMenu>
            </Ribbon.ApplicationMenu>
            <RibbonTab x:Name="HomeTab" 
                              Header="Home">
                <RibbonGroup x:Name="Group1" 
                                    Header="Group1">
                    <RibbonButton x:Name="Button1"
                                         LargeImageSource="Images\Largeicon.png"
                                         Label="Button1" />
                    <RibbonButton x:Name="Button2"
                                         SmallImageSource="Images\Smallicon.png"
                                         Label="Button2" />
                    <RibbonButton x:Name="Button3"
                                         SmallImageSource="Images\Smallicon.png"
                                         Label="Button3" />
                    <RibbonButton x:Name="Button4"
                                         SmallImageSource="Images\Smallicon.png"
                                         Label="Button4" />
                </RibbonGroup>
            </RibbonTab>
        </Ribbon>
    </Grid>

</Window>

Это должно работать. Элементы управления Ribbon были частью самого WPF начиная с .NET Framework 4.5, поэтому вам не нужно ссылаться и использовать какую-либо внешнюю библиотеку, если вы ориентируетесь на Framework 4.5+ или .NET Core 3+.

...