假设我在XAML中定义了WPF窗口:
<Window x:Class="OINA.Papyrus.ReportGeneratorPoCNetv48.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
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:local="clr-namespace:OINA.Papyrus.ReportGeneratorPoCNetv48"
xmlns:system="clr-namespace:System;assembly=mscorlib"
mc:Ignorable="d"
Title="MainWindow" Height="200" Width="800">
<StackPanel Margin="20" Loaded="OnLoaded">
<StackPanel.Resources>
<system:String x:Key="Greeting">Hello, World!</system:String>
<system:String x:Key="Farewell">Goodbye, World!</system:String>
</StackPanel.Resources>
<TextBlock x:Name="myTextBlock" Text="{StaticResource Greeting}" />
</StackPanel>
</Window>
TextBlock
元素有一个值为“Hello,World!"的Text
属性,因此在代码隐藏中我们可以简单地执行myTextBlock.Text
。但是,除了获取Text
属性的值之外,是否有一种方法可以确定用于提供Text
属性值的资源的键,在上面的例子中是“问候”
2条答案
按热度按时间zpjtge221#
您需要一个地方来存储有关密钥的信息。附加属性非常适合。
然后,您需要一种方法来使资源检索可行并存储键值。为此,请创建一个自定义标记扩展。在中,您调用常规静态资源并将key的值分配给附加属性。
该视图如下所示
通过检查textBlock附加属性来检索密钥
dkqlctbz2#
是否有一种方法可以确定用于提供Text属性值的资源的键?
不可以。这些值已经被查找过了,并且到
Greeting
资源的“连接”没有存储在某个地方。什么是DynamicResource?
然后你可以试试这个: