我無法應付在 raspbian lite 上運行 avalonia 應用程式。我正在使用 raspberry 3b 和 RaspbianLite OS。我正在使用本教程:
https://docs.avaloniaui.net/guides/deep-dives/running-on-raspbian-lite-via-drm
抱歉,但我收到此錯誤:
AXN0002 - XamlX.XamlParseException: Unable to resolve type MainView from namespace clr-namespace:AvaloniaRaspbianLiteDrm row 10, position 4
這就是我的 MainWindow 的樣子:
<Window 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:avaloniaRaspbianLiteDrm="clr-namespace:AvaloniaRaspbianLiteDrm"
mc:Ignorable="d"
d:DesignWidth="800"
d:DesignHeight="450"
x:Class="AvaloniaRaspbianLiteDrm.Views.MainWindow"
Title="AvaloniaRaspbianLiteDrm">
<avaloniaRaspbianLiteDrm:MainView/>
</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:avaloniaRaspbianLiteDrm="clr-namespace:AvaloniaRaspbianLiteDrm"
mc:Ignorable="d"
d:DesignWidth="800"
d:DesignHeight="450"
x:Class="AvaloniaRaspbianLiteDrm.Views.MainSingleView">
<avaloniaRaspbianLiteDrm:MainView/>
</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"
d:DesignWidth="800"
d:DesignHeight="450"
x:Class="AvaloniaRaspbianLiteDrm.Views.MainView">
<StackPanel HorizontalAlignment="Center"
VerticalAlignment="Center"
Margin="30"
Spacing="30">
<TextBlock FontSize="25">
Welcome to Avalonia! The best XAML framework ever ?
</TextBlock>
<Slider />
</StackPanel>
</UserControl>
程式.cs:
using Avalonia;
using Avalonia.Controls.ApplicationLifetimes;
using Avalonia.ReactiveUI;
using System;
using System.Linq;
using System.Threading;
namespace AvaloniaRaspbianLiteDrm
{
internal class Program
{
// Initialization code. Don't use any Avalonia, third-party APIs or any
// SynchronizationContext-reliant code before AppMain is called: things aren't initialized
// yet and stuff might break.
[STAThread]
public static int Main(string[] args)
{
var builder = BuildAvaloniaApp();
if (args.Contains("--drm"))
{
SilenceConsole();
return builder.StartLinuxDrm(args);
}
return builder.StartWithClassicDesktopLifetime(args);
}
private static void SilenceConsole()
{
new Thread(() =>
{
Console.CursorVisible = false;
while (true)
Console.ReadKey(true);
})
{ IsBackground = true }.Start();
}
// Avalonia configuration, don't remove; also used by visual designer.
public static AppBuilder BuildAvaloniaApp()
=> AppBuilder.Configure<App>()
.UsePlatformDetect()
.LogToTrace()
.UseReactiveUI();
}
}
應用程式.xaml.cs:
using Avalonia;
using Avalonia.Controls.ApplicationLifetimes;
using Avalonia.Markup.Xaml;
using AvaloniaRaspbianLiteDrm.ViewModels;
using AvaloniaRaspbianLiteDrm.Views;
namespace AvaloniaRaspbianLiteDrm
{
public partial class App : Application
{
public override void Initialize()
{
AvaloniaXamlLoader.Load(this);
}
public override void OnFrameworkInitializationCompleted()
{
if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
desktop.MainWindow = new MainWindow();
else if (ApplicationLifetime is ISingleViewApplicationLifetime singleView)
singleView.MainView = new MainSingleView();
base.OnFrameworkInitializationCompleted();
}
}
}
uj5u.com熱心網友回復:
訊息是MainView在命名空間中找不到avaloniaRaspbianLiteDrm。
正如我在您的示例中看到的MainView那樣(如上所示x:Class="AvaloniaRaspbianLiteDrm.Views.MainView)位于AvaloniaRaspbianLiteDrm.Views名稱空間內。您可能忘記了有一個Views命名空間。
你可能應該改變
xmlns:avaloniaRaspbianLiteDrm="clr-namespace:AvaloniaRaspbianLiteDrm"
至
xmlns:avaloniaRaspbianLiteDrm="clr-namespace:AvaloniaRaspbianLiteDrm.Views"
確保代碼隱藏檔案MainView.xaml.cs也使用AvaloniaRaspbianLiteDrm.Views命名空間。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/486747.html
上一篇:VisualStudioCommunity2022forMac版本17.0(內部版本8989)有問題(iOS應用程式未運行)
