银光与JS:获取通过 Javascript 来自 XAML 的名称或 uid

发布于 2024-11-25 19:15:21 字数 462 浏览 2 评论 0原文

我正在尝试获取来自我的 Xaml 的元素,通过 Javascript,因此我可以添加新的在运行时为其添加元素。

这样,如果用户输入数字“20”,则 20被输入。元素将被添加到中。

问题是不可能有 x:Name。它只有 x:uid。那么是否可以从 Javascript 中获取 uid 呢?我需要元素以一种或另一种方式(但只能通过 JS)。我需要添加;其元素。

有什么想法吗?

谢谢

I am trying to obtain the <RowDefinitions> element from my Xaml, through Javascript, so I can add new <RowDefinition> elements to it at runtime.

This way, if a user inputs the number '20', then 20 <RowDefinition> elements will be added to <RowDefinitions>.

The problem is that <RowDefinitions> does not have a possibility for x:Name. It only has x:uid. So would it be possible to fetch the uid from within Javascript? I need the <RowDefinitions> Element one way or another (but only through JS). I need to add <RowDefinition> elements to it.

Any ideas?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

乙白 2024-12-02 19:15:21

假设 Javascript API

不存在 这样的元素,您将引用 GridRowDefinitions 属性code> 元素,在 Xaml 中表示为 。因此,您可以使用FindName 获取Grid,然后使用GetValue 获取行定义的集合。让我们假设您有一个简单的 Xaml 来开始: -

<Grid
   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
   Loaded="rootGridLoaded" />

所以在您的 Javascript 中您可以有这样的代码: -

function rootGridLoaded(sender)
{
     var plugin = sender.getHost();
     var rowDefs = sender.GetValue("RowDefinitions");
     for (var i=0; i < 20; i++)
     {
         var rowDef = plugin.content.createFromXaml("<RowDefinition />");
         rowDefs.add(rowDef);
     }
}

这将从 Grid 中获取 RowDefinitions 集合(在本例是发送者,但您可以轻松地使用 FindName 来获取命名网格,然后循环添加 20 个 RowDefintion 实例。

Assuming Javascript API

There is no such element as <RowDefinitions> you will be refering to the RowDefinitions property of a Grid element which is represented as <Grid.RowDefinitions> in Xaml. Hence you use FindName to aquire the Grid then use GetValue to get the collection of row definitions. Lets assume you have this simple Xaml to start with:-

<Grid
   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
   Loaded="rootGridLoaded" />

So in your Javascript you have can have this code:-

function rootGridLoaded(sender)
{
     var plugin = sender.getHost();
     var rowDefs = sender.GetValue("RowDefinitions");
     for (var i=0; i < 20; i++)
     {
         var rowDef = plugin.content.createFromXaml("<RowDefinition />");
         rowDefs.add(rowDef);
     }
}

This will get the RowDefinitions collection from the Grid (which in this case is the sender but you just as easily have used FindName to get a named grid. Then it loops adding 20 RowDefintion instances ot the collection.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文