Xamarin是一个由Xamarin.iOS,Xamarin.Android,Xamarin.Mac和Xamarin Test Cloud组成的平台。它允许您编写适用于iOS,Android和Mac的跨平台本机应用程序,并在整个生命周期内关注您的应用程序。 Xamarin.Forms的引入支持iOS,Android和Windows的Native UI开发
带有 Xamarin Forms 中 XAML 元素参数的构造函数
是否可以使用依赖注入服务使用参数化构造函数创建 XAML 元素?或者还有其他方法来传递依赖关系吗?我想要有一些depe的行为...
在我今天将 Visual Studio 更新到 17.5.1 之前,这一直有效(我之前使用的是 17.4)。更新后,我的 Mac 将显示在 Visual Studio 中,但在尝试连接后显示主机
如何使用.NET MAUI中的代码访问全局资源字典中定义的样式?
我在 Styles.xaml 文件中定义了样式,例如: <Setter Property="Margin" Value=&q...</desc> <question vote="0"> <p>我在 Styles.xaml 文件中定义了样式,例如:</p> <pre><code><Style x:Key="LabelFiledVerticalStyle" TargetType="Label"> <Setter Property="Margin" Value="0,7,0,0" /> </Style> </code></pre> <h3>方式1</h3> <p>我想从我的代码隐藏文件中访问它,所以我这样做了:</p> <pre><code>var LabelStyle = (Style)Application.Current.Resources["LabelFiledVerticalStyle"]; </code></pre> <p>当我运行该应用程序时,出现以下错误: 字典中不存在资源“LabelFiledVerticalStyle”</p> <h3>方式2通过代码通过key访问资源</h3> <p>我查阅了微软提供的官方文档,找到了其他方法。所以,也尝试过:</p> <pre><code>var hasValue = Resources.TryGetValue("LabelFiledVerticalStyle", out object style); if (hasValue) { var LabelStyle = (Style)style; } </code></pre> <p>在这方面我也得到了 hasValue = false,尽管样式存在于资源字典中。</p> <p>有人知道我们如何从代码隐藏中访问它吗?请告诉我。</p> </question> <answer tick="false" vote="0"> <p><strong>第一种方式</strong></p> <p>如果你想用第一种方式访问样式,我们通常在文件中定义样式<pre><code>App.xaml</code></pre></p> <p>例如,我们可以在<pre><code>App.xaml</code></pre>中定义样式,如下:</p> <pre><code> <?xml version="1.0" encoding="UTF-8"?> <Application xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="Styles.App"> <Application.Resources> <ResourceDictionary> <Style x:Key="buttonStyle" TargetType="Button"> <Setter Property="HorizontalOptions" Value="Center" /> <Setter Property="VerticalOptions" Value="CenterAndExpand" /> <Setter Property="BorderColor" Value="Lime" /> <Setter Property="CornerRadius" Value="5" /> <Setter Property="BorderWidth" Value="5" /> <Setter Property="WidthRequest" Value="200" /> <Setter Property="TextColor" Value="Teal" /> </Style> <!-- ContentPage --> <Style TargetType="ContentPage" ApplyToDerivedTypes="True"> <Setter Property="BackgroundColor" Value="WhiteSmoke" /> </Style> <!--define the style of Label here--> <Style x:Key="LabelFiledVerticalStyle" TargetType="Label"> <Setter Property="Margin" Value="0,7,0,0" /> <Setter Property="TextColor" Value="Red" /> </Style> </ResourceDictionary> </Application.Resources> </Application> </code></pre> <p>然后在我们的页面中,我们可以通过代码访问样式:</p> <pre><code>new Label { Text="test label",Style=(Style)Application.Current.Resources ["LabelFiledVerticalStyle"]} </code></pre> <p>使用示例:</p> <pre><code>public class ApplicationStylesPageCS : ContentPage { public ApplicationStylesPageCS () { Title = "Application"; IconImageSource = "csharp.png"; Padding = new Thickness (0, 20, 0, 0); Content = new StackLayout { Children = { new Button { Text = "These buttons", Style = (Style)Application.Current.Resources ["buttonStyle"] }, new Label { Text="test label",Style=(Style)Application.Current.Resources ["LabelFiledVerticalStyle"]} } }; } } </code></pre> <p>有关更多信息,您可以查看文档<a href="https://learn.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/styles/xaml/application" rel="nofollow noreferrer">Xamarin.Forms中的全局样式</a>。</p> <p><strong>第二种方式</strong></p> <p>如果您创建一个<pre><code>ResourceDictionary</code></pre>(例如<pre><code>MyResourceDictionary.xaml</code></pre>)并将您的样式添加到<pre><code>ResourceDictionary</code></pre>,如下所示:</p> <p><pre><code>MyResourceDictionary.xaml</code></pre></p> <pre><code><?xml version="1.0" encoding="UTF-8"?> <ResourceDictionary xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"> <!--define the style of Label here--> <Style x:Key="LabelFiledVerticalStyle" TargetType="Label"> <Setter Property="Margin" Value="0,7,0,0" /> <Setter Property="TextColor" Value="Red" /> </Style> </ResourceDictionary> </code></pre> <p>然后,如果我们想访问样式,我们应该将上面的 <pre><code>ResourceDictionary </code></pre> 添加到页面的 <pre><code>ContentPage.Resources</code></pre> 中。 </p> <pre><code><ContentPage.Resources> <!--add your ResourceDictionary here--> <ResourceDictionary Source="MyResourceDictionary.xaml" /> </ContentPage.Resources> </code></pre> <p>您可以参考这里的示例代码:</p> <p><pre><code>ApplicationStylesPage.xaml</code></pre></p> <pre><code> <?xml version="1.0" encoding="UTF-8"?> <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="Styles.ApplicationStylesPage" Title="Application" IconImageSource="xaml.png"> <ContentPage.Resources> <!--add your ResourceDictionary here--> <ResourceDictionary Source="MyResourceDictionary.xaml" /> <ResourceDictionary> <Style x:Key="buttonStyle" TargetType="Button"> <Setter Property="HorizontalOptions" Value="Center" /> <Setter Property="VerticalOptions" Value="CenterAndExpand" /> <Setter Property="BorderColor" Value="Lime" /> <Setter Property="CornerRadius" Value="5" /> <Setter Property="BorderWidth" Value="5" /> <Setter Property="WidthRequest" Value="200" /> <Setter Property="TextColor" Value="Red" /> </Style> </ResourceDictionary> </ContentPage.Resources> <ContentPage.Content> <StackLayout Padding="0,20,0,0"> <Button Text="application style overrides" Style="{StaticResource buttonStyle}" Clicked="Button_Clicked" /> </StackLayout> </ContentPage.Content> </ContentPage> </code></pre> <p><pre><code>ApplicationStylesPage.xaml.cs</code></pre></p> <p> </p> <pre><code>public partial class ApplicationStylesPage : ContentPage { public ApplicationStylesPage () { InitializeComponent (); } private void Button_Clicked(object sender, System.EventArgs e) { var hasValue = Resources.TryGetValue("LabelFiledVerticalStyle", out object style); if (hasValue) { var LabelStyle = (Style)style; } } } </code></pre> </answer> <answer tick="false" vote="0"> <p>我遇到了类似的问题,解决方案非常有帮助,但有一个警告:</p> <p>在常规的 Maui 应用程序中,资源不会位于 Resources 中,而是位于 App.Current.Resources 中,如果一开始上述解决方案不起作用,请使用此解决方案。</p> </answer> </body></html>
当我创建 Xamarin 移动应用程序时,我刚刚注意到我没有主项目,就像照片中一样。 我看待项目的方式 主文件夹 你知道为什么会这样吗?我尝试修复...
我正在使用 Xamarin 表单编写应用程序。当我使用 popAsync() 离开编辑列表的页面时,我想刷新上一页上的列表,以便显示我的更改......
当我使用“ValidateAntiForgeryToken”和“Authorize”时收到 400 错误请求
我在服务器端使用asp.net core,在客户端使用xamarin。我使用JWT令牌,我想同时验证伪造令牌。 这是我的客户端代码: 公共异步任务<
如何在 Xamarin.iOS 中使用 gif 与 UIImageView 而不使用第三方库?
我想在UIImageView中加载gif图像。我尝试将它与 FLAnimatedImage 一起使用,但没有成功。我已经在故事板中拍摄了 imageview 并将 gif 添加到资源中。
Android SDK Manager 中没有更改存储库的选项
错误截图 我目前正在 Visual Studio 2022 Community Preview 中进行编码。我用谷歌搜索了我的问题,发现将存储库更改为 Google 可以解决问题,但在我的 andr 中......
如何使 monotouch.dialog 在 .net maui 中工作
我有一项任务,要将使用 Xamarin.ios 构建的 IOS 应用程序迁移到 .NET MAUI。 它几乎完成了,但我坚持使用这个名为 MonoTouch.Dialog 的包,它与 不兼容。 NET.IOS。 我的是什么
Xamarin.forms 可以针对 android 14 ( sdk 34) 吗?
我正在尝试更新我的应用程序以按照官方公告(https://dotnet.microsoft.com/en-us/platform/support/policy/xamarin)指定的 Android 34 为目标 我尝试直接将清单文件更改为
Xamarin Essentials 的 FilePicker 不允许在 iOS 上选择任何文件
我需要在我的应用程序中导入 CSV/SQLite3 文件以从以前的离线备份恢复设置。我使用 Xamarin.Essentials.FilePicker,它在 Android 上完美运行,但是在 iOS 上尝试时......
如何使用 Swift API 创建与 Xamarin 一起使用的框架?
目前我是一家公司的实习生。 L.E.要求我使用 Xamarin 创建一个应用程序并包含 iOS (Swift) 的本机库。我的想法是创建一个应用程序,让人们使用...
在 Xamarin 项目中不使用 WebView 进行 Google 身份验证(以获取 rtmp URL)?
我正在尝试开发一个能够在 YouTube 上流式传输的 Xamarin 项目。 我想从用户帐户获取 rtmp URL。 但是,最近谷歌禁用了网络视图来授权应用程序获取
Xamarin 社区工具包 CameraView 提供的视频文件位置在 IOS 和 Android 上变得无效
我正在使用CameraView 拍摄一系列短视频。我希望稍后可以在应用程序内查看这些视频。我正在使用 MediaCaptured 事件来获取捕获的 v 的路径...
更新 3 年 Xamarin 应用程序的 NuGet 包后出现多个错误
我在 Visual Studio 上打开了我的计算机上的一个旧的废弃项目(大约 2-3 年)。我调试了应用程序,除了一些小问题(与...相关)之外,似乎处于工作状态
Xamarin Forms 在 API33 上读取和写入外部存储问题
曾经针对 Android 12 的 Xamarin Forms 应用程序。我所做的只是更改为针对 Android 13 (API33),当我这样做时,我无法再使用 READ_EXTERNAL_STORAGE 或 WRITE_EXTERNAL_S...
我正在使用 .NET Maui 编写一个应用程序并使用 Mopup Nuget 包。应打开一个弹出窗口,并从那里通过按钮打开导航页面。不幸的是,当点击...
任何人都可以帮助我解决这种情况吗?我需要帮助使用 Xamarin.Forms(iOS 和 Android)打印 QR 码(我只需要 Android 版本)。 打印机型号:Eurosys POSIMPT9BT02(通用
这是确保取消订阅 Xamarin Prism 订阅的适当方法吗?
我有一个 Xamarin/Prism 应用程序(不是我的代码),它具有各种事件订阅和许多内存泄漏。我认为内存泄漏之一与这些事件订阅有关。这是...