Не удаётся подключить элемент управления MediaElement из MAUI Community Toolkit

Рейтинг: 1Ответов: 1Опубликовано: 30.05.2023

Не удаётся подключить тип toolkit:MediaElement - что упускаю ?

https://learn.microsoft.com/ru-ru/dotnet/communitytoolkit/maui/views/mediaelement

Структура проекта

введите сюда описание изображения

MainPage.xaml

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
             x:Class="MauiAppDelTest.MainPage">

    <toolkit:MediaElement x:Name="mediaElement"/>

    <ScrollView>
        <VerticalStackLayout
            Spacing="25"
            Padding="30,0"
            VerticalOptions="Center">

            <Image
                Source="dotnet_bot.png"
                SemanticProperties.Description="Cute dot net bot waving hi to you!"
                HeightRequest="200"
                HorizontalOptions="Center" />

            <Label
                Text="Hello, World!"
                SemanticProperties.HeadingLevel="Level1"
                FontSize="32"
                HorizontalOptions="Center" />

            <Label
                Text="Welcome to .NET Multi-platform App UI"
                SemanticProperties.HeadingLevel="Level2"
                SemanticProperties.Description="Welcome to dot net Multi platform App U I"
                FontSize="18"
                HorizontalOptions="Center" />

            <Button
                x:Name="CounterBtn"
                Text="Click me"
                SemanticProperties.Hint="Counts the number of times you click"
                Clicked="OnCounterClicked"
                HorizontalOptions="Center" />

        </VerticalStackLayout>
    </ScrollView>

</ContentPage>

MauiProgram.cs

using CommunityToolkit.Maui;
using Microsoft.Extensions.Logging;

namespace MauiAppDelTest;

public static class MauiProgram
{
    public static MauiApp CreateMauiApp()
    {
        var builder = MauiApp.CreateBuilder();
        builder
            .UseMauiApp<App>()
            .UseMauiCommunityToolkit()
            .ConfigureFonts(fonts =>
            {
                fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
                fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
            });

#if DEBUG
        builder.Logging.AddDebug();
#endif

        return builder.Build();
    }
}

Ошибка наглядно

введите сюда описание изображения

Пробовал пересобрать: введите сюда описание изображения

    Повторная сборка начата…
1>------ Перестроение всех файлов начато: проект: MauiAppDelTest, Конфигурация: Debug Any CPU ------
Восстановлен F:\Projects\MauiAppDelTest\MauiAppDelTest\MauiAppDelTest.csproj (за 307 мс).
1>F:\Projects\MauiAppDelTest\MauiAppDelTest\Microsoft.Maui.Controls.SourceGen\Microsoft.Maui.Controls.SourceGen.CodeBehindGenerator\MainPage.xaml.sg.cs(25,74,25,86): error CS0103: Имя "mediaElement" не существует в текущем контексте.
1>Сборка проекта "MauiAppDelTest.csproj" завершена с ошибкой.
1>F:\Projects\MauiAppDelTest\MauiAppDelTest\Microsoft.Maui.Controls.SourceGen\Microsoft.Maui.Controls.SourceGen.CodeBehindGenerator\MainPage.xaml.sg.cs(25,74,25,86): error CS0103: Имя "mediaElement" не существует в текущем контексте.
1>Сборка проекта "MauiAppDelTest.csproj" завершена с ошибкой.
1>F:\Projects\MauiAppDelTest\MauiAppDelTest\Microsoft.Maui.Controls.SourceGen\Microsoft.Maui.Controls.SourceGen.CodeBehindGenerator\MainPage.xaml.sg.cs(25,74,25,86): error CS0103: Имя "mediaElement" не существует в текущем контексте.
1>Сборка проекта "MauiAppDelTest.csproj" завершена с ошибкой.
1>F:\Projects\MauiAppDelTest\MauiAppDelTest\Microsoft.Maui.Controls.SourceGen\Microsoft.Maui.Controls.SourceGen.CodeBehindGenerator\MainPage.xaml.sg.cs(25,74,25,86): error CS0103: Имя "mediaElement" не существует в текущем контексте.
1>Сборка проекта "MauiAppDelTest.csproj" завершена с ошибкой.
========== Перестроить все: успешно — 0, неудачно — 1, пропущено — 0 ==========
========== Перестроить запущено в 12:02 PM, заняло 05,930 с ==========

Убрал x:Name и пересобрал:

Повторная сборка начата…
1>------ Перестроение всех файлов начато: проект: MauiAppDelTest, Конфигурация: Debug Any CPU ------
Восстановлен F:\Projects\MauiAppDelTest\MauiAppDelTest\MauiAppDelTest.csproj (за 350 мс).
1>MainPage.xaml(7,6): XamlC error XFC0000: Cannot resolve type "http://schemas.microsoft.com/dotnet/2022/maui/toolkit:toolkit:MediaElement".
1>MainPage.xaml(7,6): XamlC error XFC0000: Cannot resolve type "http://schemas.microsoft.com/dotnet/2022/maui/toolkit:toolkit:MediaElement".
1>Сборка проекта "MauiAppDelTest.csproj" завершена с ошибкой.
1>MainPage.xaml(7,6): XamlC error XFC0000: Cannot resolve type "http://schemas.microsoft.com/dotnet/2022/maui/toolkit:toolkit:MediaElement".
1>Сборка проекта "MauiAppDelTest.csproj" завершена с ошибкой.
1>MainPage.xaml(7,6): XamlC error XFC0000: Cannot resolve type "http://schemas.microsoft.com/dotnet/2022/maui/toolkit:toolkit:MediaElement".
1>Сборка проекта "MauiAppDelTest.csproj" завершена с ошибкой.
========== Перестроить все: успешно — 0, неудачно — 1, пропущено — 0 ==========
========== Перестроить запущено в 12:18 PM, заняло 06,888 с ==========

.cproj

<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
    <TargetFrameworks>net7.0-android;net7.0-ios;net7.0-maccatalyst</TargetFrameworks>
    <TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('windows'))">$(TargetFrameworks);net7.0-windows10.0.19041.0</TargetFrameworks>
    <!-- Uncomment to also build the tizen app. You will need to install tizen by following this: https://github.com/Samsung/Tizen.NET -->
    <!-- <TargetFrameworks>$(TargetFrameworks);net7.0-tizen</TargetFrameworks> -->
    <OutputType>Exe</OutputType>
    <RootNamespace>MauiAppDelTest</RootNamespace>
    <UseMaui>true</UseMaui>
    <SingleProject>true</SingleProject>
    <ImplicitUsings>enable</ImplicitUsings>

    <!-- Display name -->
    <ApplicationTitle>MauiAppDelTest</ApplicationTitle>

    <!-- App Identifier -->
    <ApplicationId>com.companyname.mauiappdeltest</ApplicationId>
    <ApplicationIdGuid>78dc532d-cb6b-481e-99f8-1e8ead315bfe</ApplicationIdGuid>

    <!-- Versions -->
    <ApplicationDisplayVersion>1.0</ApplicationDisplayVersion>
    <ApplicationVersion>1</ApplicationVersion>

    <SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios'">11.0</SupportedOSPlatformVersion>
    <SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'maccatalyst'">13.1</SupportedOSPlatformVersion>
    <SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'android'">21.0</SupportedOSPlatformVersion>
    <SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'">10.0.17763.0</SupportedOSPlatformVersion>
    <TargetPlatformMinVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'">10.0.17763.0</TargetPlatformMinVersion>
    <SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'tizen'">6.5</SupportedOSPlatformVersion>
</PropertyGroup>

<ItemGroup>
    <!-- App Icon -->
    <MauiIcon Include="Resources\AppIcon\appicon.svg" ForegroundFile="Resources\AppIcon\appiconfg.svg" Color="#512BD4" />

    <!-- Splash Screen -->
    <MauiSplashScreen Include="Resources\Splash\splash.svg" Color="#512BD4" BaseSize="128,128" />

    <!-- Images -->
    <MauiImage Include="Resources\Images\*" />
    <MauiImage Update="Resources\Images\dotnet_bot.svg" BaseSize="168,208" />

    <!-- Custom Fonts -->
    <MauiFont Include="Resources\Fonts\*" />

    <!-- Raw Assets (also remove the "Resources\Raw" prefix) -->
    <MauiAsset Include="Resources\Raw\**" LogicalName="%(RecursiveDir)%(Filename)%(Extension)" />
</ItemGroup>

<ItemGroup>
    <PackageReference Include="CommunityToolkit.Maui" Version="5.2.0" />
    <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="7.0.0" />
</ItemGroup>

Ответы

▲ 3Принят

Элемент управления MediaElement не входит в основной пакет Community Toolkit.

Установите NuGet пакет https://www.nuget.org/packages/CommunityToolkit.Maui.MediaElement