1

我有这个 xaml

<mui:ModernWindow x:Uid="mui:ModernWindow_1" x:Class="App1.HomePage"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:mui="http://firstfloorsoftware.com/ModernUI"
  xmlns:sys="clr-namespace:System;assembly=mscorlib"
  ContentSource="/Window1.xaml"
  Title="MainWindow" Height="350" Width="525" WindowState="Maximized" MenuLinkGroups="{Binding menuLinkGroups}">
    <mui:ModernWindow.Resources>
        <sys:String x:Key="ApplicationName">Bla Bla</sys:String>
    </mui:ModernWindow.Resources>
    <Grid Style="{StaticResource ContentRoot}" Name="mainGrid">
    </Grid>
</mui:ModernWindow>

我需要引用当前的窗口资源,所以我使用了这个:

object obj = this.Resources["ApplicationName"];

但是this.Resources没有任何资源!所以obj始终为空。我怎么能引用这个窗口资源?

4

5 回答 5

0

谢谢大家,我找到了解决方案(我忘记更新本地化的 dll)。

我清理并重建了解决方案,再次使用 locbaml.exe 生成新的本地化 dll。

于 2014-07-23T13:55:01.243 回答
0

您应该在 XAML 中绑定,而不是在后面的代码中。

“res”是资源文件所在的命名空间。

在您的示例中,命名空间别名是“local”:

xmlns:local="clr-namespace:Project.Resources"

所以你的代码应该是这样的:

<Page Title ="{x:Static local:localStrings.step1Description}" />

在哪里:

“local”是资源文件所在的命名空间别名。

“localStrings”是资源文件的名称。

“step1Description”是资源文件中的一个条目。

于 2014-07-23T14:14:19.163 回答
0

假设this是一个控制...

var parent = Window.GetWindow(this)

将获得控件当前所在的窗口,然后您应该能够像以前一样访问资源

parent.Resources["ApplicationName"];
于 2014-07-23T13:30:25.593 回答
0

假设它this是 a FrameworkElement, like a Window, a Grid, aButton或类似的东西。

object obj = this.TryFindResource("ApplicationName");
于 2014-07-23T13:23:08.240 回答
0

您可以使用下面提到的代码

var MainGrid=Application.Current.FindResource("strApp")

或者

this.FindResource("ApplicationName")
于 2014-07-23T13:27:20.530 回答