如何将 C# 中的标签添加到 XAML 代码中的网格中?

2024-01-21

我有这个模板:

<?xml version="1.0" encoding="UTF-8"?>
<ContentView xmlns="http://xamarin.com/schemas/2014/forms" 
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
             x:Class="Japanese.Templates.PointReductionModeTemplate" x:Name="this">
    <StackLayout BackgroundColor="#FFFFFF" Padding="20,0" HeightRequest="49" Margin="0">
        <Grid VerticalOptions="CenterAndExpand" x:Name="ABC">

        </Grid>
    </StackLayout>
</ContentView>

如何使用此文本和样式将此标签添加到 C# 中的网格?请注意,我希望能够参考Source={x:Reference this} also

<Label Text="{Binding Text, Source={x:Reference this}}" Style="{StaticResource LabelText}" />

您可以使用SetBinding()使用父级(this)作为绑定源时创建绑定。显式指定源参数告诉Binding将该实例称为Source.

//<Label Text="{Binding Text, Source={x:Reference this}}" ...
var label = new Label();
label.SetBinding(Label.TextProperty, new Binding(nameof(Text), source: this));

现在设置Style动态地从资源中获取并不那么简单。当我们使用StaticResource https://github.com/xamarin/Xamarin.Forms/blob/master/Xamarin.Forms.Xaml/MarkupExtensions/StaticResourceExtension.csXAML 中的扩展,它负责沿着视觉树查找匹配的资源(样式)。在代码隐藏中,您必须手动定义确切的资源字典,样式在其中定义。

因此,假设您在 App.xaml 中定义了“LabelText” - 您可以使用以下代码:

//... Style="{StaticResource LabelText}" />
//if the style has been defined in the App resources
var resourceKey = "LabelText";

// resource-dictionary that has the style
var resources = Application.Current.Resources;

if (resources.TryGetValue(resourceKey, out object resource))
    label.Style = resource as Style;

如果样式在 PointReductionModeTemplate.xaml 中定义(或ContentView资源),您也可以使用:

var resources = this.Resources;
if (resources.TryGetValue(resourceKey, out object resource))
    label.Style = resource as Style;

最后将标签添加到网格中。

this.ABC.Children.Add(label);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 C# 中的标签添加到 XAML 代码中的网格中? 的相关文章

随机推荐

  • 主管 - 用户名无效[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试在 Ubuntu 16 04 上运行主管 安装时没有出现问题 我创建了文件 etc supervisor conf d test
  • Java可以删除到回收站吗?

    Java是这里的关键 我需要能够删除文件 但用户希望能够从回收站 取消删除 据我所知这是不可能的 还有人知道吗 十年后 Java 9 终于提供了一种将文件移动到垃圾箱的内置方法 java awt Desktop moveToTrash ja
  • AWS Transcribe Streaming BadRequestException:“无法解码音频流...”

    我正在使用 Websockets 在 Dart Flutter 中构建一个 Transcribe Streaming 应用程序 当我流式传输测试音频 从单声道 16kHz 16 位签名的小端 WAV 文件中提取 时 我得到 BadReque
  • 覆盖身份验证失败处理程序 - Symfony2

    我正在扩展身份验证失败处理程序 一切都主要工作正常 但有一个小问题 这是我的 services yml http utils class class Symfony Component Security Http HttpUtils aut
  • 如何使用 css3 校正鱼眼全景图?

    我觉得是时候将我的 Flash 全景图转换为 js html5 css3 了 我见过一些使用单独的平面图像的优雅解决方案 但我的都是鱼眼 我的直觉告诉我 使用 webkit transform matrix3d 是可行的 但我不太喜欢它 如
  • 在 Android 上运行 Perl 脚本

    我需要运行 Perl 脚本 ishybrid pl http manpages ubuntu com manpages natty man1 isohybrid pl 1 html 来自我的 Android 应用程序 我碰到perl and
  • 更改 FontAwesome 图标与悬停时的文本

    我正在尝试为我的网站创建响应式功能 基本上我想要的是有很棒的字体图标用于导航 但是在计算机上如果将鼠标悬停在图标上 它就会变成一个单词 我已经通过 CSS 尝试过 使用a content 进而a hover content 我以前从未尝试过
  • C#/.NET 4.0 中新的 NoPIA 和类型等效功能是否意味着不再需要 Microsoft.mshtml.dll

    我正在维护一个基于 WPF 的应用程序 其中包含一个基于 WinForms 的 WebBrowser 控件 该控件基于 IE Web 浏览器控件 当我们部署时 我们还必须提供微软 mshtml dll并为我们的 ClickOnce 发布流程
  • cudaStreamSynchronize vs CudaDeviceSynchronize vs cudaThreadSynchronize

    这三个函数 特别是最后两个函数有什么区别 图书馆手册说 请注意 此函数已被弃用 因为它的名称不 反映其行为 它的功能类似于 未弃用的函数 cudaDeviceSynchronize 应使用 反而 但不太确定这是什么意思 这些都是barrie
  • AngularJs 中隐藏的可见性?

  • Android Studio 1.1.0 中变量值更改中断?

    我知道我可以在代码更改变量的每一行设置一个断点 但是是否有一个选项 例如右键单击变量 添加到监视 该选项会在变量更改值时停止 我认为C 有这个选项 看到这个 https stackoverflow com questions 871328
  • 如何设置浏览器滚动条滚动页面的一部分?

    我在一些网站上看到过这样做 一个例子是artofadambetts com http www artofadambetts com weblog p 169 页面上的滚动条仅滚动页面的一个元素 而不是整个页面 我查看了来源 但还没有弄清楚
  • 在 data.table 中使用不同的列嵌套 ifelse

    我需要计算 a 的某些列的每一行的 最佳值 data table 每行的最佳值是按选定列的给定顺序排列的第一个非 NA 列的值 根据要求 要包含的列可能会因顺序或数量而异 此外 应为每行存储提供最佳值的列的名称 示例数据 With libr
  • Jquery UI 可删除

    Jquery UI droppable 是否能够与计算机内的文件交互 假设我的电脑上有一个图像文件 而不是在webpage我尝试将其放在上面并触发一个简单的警报来通知 仅使用 Jquery UI 可以吗 对于您所描述的内容 请使用HTML5
  • Eclipse:缺少 Eclipse 应用程序启动配置

    我想在 eclipse 的运行 调试配置中选择 Eclipse 应用程序启动配置 用于运行 eclipse 插件 但它不存在 如何在运行 调试配置中添加 Eclipse 应用程序启动配置 我正在使用面向 Java 开发人员的 Eclipse
  • 如何将十六进制转换为十进制?

    我有不同的十六进制数据传入并存储到整数类型寄存器中 当我使用 fprint 时 我可以看到以下内容 0x3076 0x307c 但是 我想显示上述十六进制数据的十进制版本 如下所示 12406 12412 理论上 假设对于第一个值 您可以执
  • 无法将 FTP 连接到 Azure 虚拟机

    我在 Azure 中配置了 Windows Server 2012 虚拟机 当我尝试通过 FileZilla FTP 客户端连接到它时 我得到一个Could not connect to server error 到目前为止 这是我尝试过的
  • Angular.js 更新指令中的 SVG 模板

    不久前我问过 Angular js 在指令中渲染 SVG 模板 https stackoverflow com questions 19568226 angular js rendering svg templates in directi
  • 稳定基线不适用于张量流

    因此 我最近重新回到机器学习领域 并决定开始 ConnectX 的 Kaggle 课程 https www kaggle com learn intro to game ai and reinforcement learning https
  • 如何将 C# 中的标签添加到 XAML 代码中的网格中?

    我有这个模板