通常,.razor页面具有 HTML 标签和@codeC# 指令。
Blazor Mobile Binding 是否也类似于下面的 XAML 标记和 C# 代码?
我发现 Blazor Mobile 应用程序示例使用BlazorWebViewHTML.razor
所以基本上,如果我不想使用BlazorWebView或不想要混合应用程序,我可以只在同一.razor文件中使用 XAML 和 C# 代码来制作本机应用程序吗?
以前,在 Xamarin 平台上,我们将 XAML 和 C# 作为代码隐藏语言编写在单独的.cs文件中。
我对 c# 和 maui 还很陌生。我想了解如何在画布上绘图。我阅读了文档并在网上找到了一些东西。我想画简单的线条。

我所做的是在里面创建了类MauiProgram.cs
namespace TestMauiX;
using Microsoft.Maui.Graphics;
public static class MauiProgram
{
public static MauiApp CreateMauiApp()
{
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
.ConfigureFonts(fonts =>
{
fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
});
return builder.Build();
}
}
public class MyFirstDrawing : IDrawable
{
public void Draw(ICanvas canvas, RectangleF dirtyRect)
{
canvas.StrokeColor = Colors.Red;
canvas.StrokeSize = 6;
canvas.DrawLine(10, 10, 90, 100);
}
}
Run Code Online (Sandbox Code Playgroud)
然后我有了MainPage.xaml,但是我应该如何把那张图放进去呢?
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="TestMauiX.MainPage"
BackgroundColor="{DynamicResource SecondaryColor}">
<ScrollView>
<Grid RowSpacing="25" RowDefinitions="Auto,Auto,Auto,Auto,*"
Padding="{OnPlatform iOS='30,60,30,30', Default='30'}">
<Label
Text="Hello, …Run Code Online (Sandbox Code Playgroud) 我正在使用 .NET MAUI RC3 在 Android 设备(操作系统版本 7.1.2,API 级别 25)上开发一个用于价格验证的应用程序。
我已经设法使用 Shell.NavBarIsVisible="False" 使顶部的状态栏以及 .NET MAUI 导航栏消失,但是,我仍然试图禁用底部的 Android 导航栏:
我努力了:
我已经在 MainActivity 中设置了这个,但它只删除了顶部的状态栏:
public class MainActivity : MauiAppCompatActivity
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
this.Window.AddFlags(Android.Views.WindowManagerFlags.Fullscreen);
}
}
Run Code Online (Sandbox Code Playgroud)
我发现的隐藏导航按钮的示例都因各种原因而失败并出现语法错误:
任何帮助,将不胜感激。
谢谢,
约尔格.
我们有一个使用 Xamarin 构建的应用程序,过去几年一直在生产环境中运行(iOS 和 andriod)。但是,最近,我们不断听到和读到,微软正在取消 Xamarin 对 iOS 和 Android 的支持,终止日期为 2023 年 11 月。但是,Microsoft 在 2022 年 11 月之后不会修补/修复错误。这是真的吗?
除此之外,毛伊岛尚未开放 GA,我仍然看到大约 2000 个未解决的问题。我想了解
伙计,这就像走过糖蜜:(
好的,我在名为 models 的文件夹中有一个类。我在名为 ViewModels 的文件夹中有一个视图模型,还有一个显示蓝牙连接列表的页面 - 不要兴奋,这只是虚拟数据:叹息
所以这是代码BluetoothPeripheral.cs
namespace TSDZ2Monitor.Models;
public class BluetoothPeripheral
{
public string Name { get; set; }
public string Id { get; set; }
public bool Enabled { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
namespace TSDZ2Monitor.ViewModels;
public partial class BluetoothPeripheralsViewModel : ObservableObject
{
[ObservableProperty]
public ObservableCollection<BluetoothPeripheral> bluetoothPeripherals = new()
{
new BluetoothPeripheral
{
Name = "Heart Rate Monitor",
Id = "12:12:12:12:AB",
Enabled = true
},
new BluetoothPeripheral
{
Name = "Speedometer",
Id = "34:34:34:34:CD",
Enabled = true …Run Code Online (Sandbox Code Playgroud) 如何在代码后面找到带有密钥的资源?
也相当于{DynamicResource}/{StaticResource}标记扩展。
在 WPF 中,解决方案是:
Style=(Style)FindResource("MyStyleKey");
How to do this in MAUI?,因为 FindResource 不存在。
我不想手动挖掘 Application.Resources 中的所有合并字典
我想知道为什么还没人问,我是否忽略了这个简单的解决方案?
编辑1:
哈哈,好的,我没有想到要检查 ResourceDictionary 是否递归搜索自身。但这只是工作的一半。你仍然需要向后遍历当前元素树。
因此,为什么 FindResource 没有默认实现的问题仍然是合理的?或者其他地方是否已经有一个函数可以做到这一点?
编辑2:
我把问题带到了更重要的一点:如何找到资源,而不是如何分配。
最初的问题是“如何在代码后面分配带有键的样式”
在 .NET MAUI 中,有一种很好的方法可以通过文件夹Styles.xaml下的文件全局处理控件的样式Resources/Styles。
有没有办法Entry通过文件向所有控件添加圆角Styles.xaml,而不是在文件中单独处理ContentPage XAML?
Entry以下是.NET MAUI 应用程序中控件的开箱即用的标准样式。有没有办法在这里添加圆角?据我所知,我们现在通过控制来处理圆角Border。我可以定义一个边框Styles.xaml,然后在样式中引用它以进行Entry控制吗?
<Style TargetType="Entry">
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource Black}, Dark={StaticResource White}}" />
<Setter Property="BackgroundColor" Value="{StaticResource FormElementBackground}" />
<Setter Property="FontFamily" Value="OpenSansRegular"/>
<Setter Property="FontSize" Value="14" />
<Setter Property="PlaceholderColor" Value="{AppThemeBinding Light={StaticResource Gray200}, Dark={StaticResource Gray500}}" />
<Setter Property="VisualStateManager.VisualStateGroups">
<VisualStateGroupList>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal" />
<VisualState x:Name="Disabled">
<VisualState.Setters>
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource Gray300}, Dark={StaticResource Gray600}}" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateGroupList>
</Setter> …Run Code Online (Sandbox Code Playgroud) 我的 .NET MAUI 应用程序中有一个CollectionView,我将其放置在 .NET MAUI 应用程序中RefreshView。当我调用 API 来填充 this 时CollectionView,我会缓存数据,这样我就不必在每次用户点击此页面时继续进行 API 调用。
为了简化我的代码,我private在视图模型中创建了一个调用 API 的方法。视图模型如下所示:
public partial MyViewModel : BaseViewModel
{
ObservableCollection<MyModel> MyData { get; } = new();
[RelayCommand]
async Task RefreshData()
{
IsBusy = true;
await GetData(true);
IsBusy = false;
}
private async Task GetData(bool shouldGetFreshData)
{
// Makes API call to get data, then assigns it to MyData collection
}
public async void Init()
{
IsBusy = true;
await …Run Code Online (Sandbox Code Playgroud) maui ×10
xamarin ×5
c# ×4
.net ×3
.net-maui ×3
.net-6.0 ×1
android ×1
asp.net-core ×1
blazor ×1
data-binding ×1
maui-blazor ×1
xamarin.ios ×1
xaml ×1