Tom*_*aho 5 wpf dictionary window title
我使用资源字典进行本地化,我在wpf中有这个代码:
<Window x:Class="RWIS_WPF.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="RWIS" Height="500" Width="800" MinHeight="500" MinWidth="800">
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Localizations/Dictionary.EN.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>
Run Code Online (Sandbox Code Playgroud)
我的问题是,我想使用本地化窗口标题 {StaticResource mW_screen1}
<Window x:Class="RWIS_WPF.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="{StaticResource IT_IS_NOT_WORKING}" Height="500" Width="800"
MinHeight="500" MinWidth="800">
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Localizations/Dictionary.EN.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>
<TextBlock Text="{StaticResource IT_IS_WORKING}"></TextBlock>
Run Code Online (Sandbox Code Playgroud)
但是它没有用,因为资源是在title调用它之后定义的.当我尝试运行它时会给我错误
System.Windows.Markup.XamlParseException发生Message ='提供值'System.Windows.StaticResourceExtension'抛出异常.行号"6"和行位置"9".
添加资源后,它适用于标题,文本
我试图用c#代码调用它,但我没有成功.
我知道有选择:
<Window.Title></Window.Title>
Run Code Online (Sandbox Code Playgroud)
但是没有像文本或价值这样的论点,我可以放在哪里 Text="{StaticResource IT_IS_WORKING}"
StaticResource
在将BAML(已编译的XAML)加载到内存中时应用它,parses XAML from top to bottom
并且由于您的资源尚未创建,因此在加载XAML时会抛出错误.
相反,尝试使用DynamicResource
哪个是懒惰加载版本,你可以说.它将表达式对象分配给目标属性.这会延迟查找资源,直到在运行时需要它为止.
阅读本文以进一步说明 - StaticResource V/S DyanamicResource.
<Window Title="{DynamicResource IT_WILL_WORK}"/>
Run Code Online (Sandbox Code Playgroud)
只需使用更详细的定义StaticResource
:
xmlns:System="clr-namespace:System;assembly=mscorlib"
...
<Window.Resources>
<System:String x:Key="Title">Some Title</System:String>
...
</Window.Resources>
<Window.Title>
<StaticResource ResourceKey="Title" />
</Window.Title>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4179 次 |
最近记录: |