wpf
WPF-Lokalisierung
Suche…
Bemerkungen
Der Inhalt von Steuerelementen kann mithilfe von Ressourcendateien lokalisiert werden, genau wie dies in Klassen möglich ist. Für XAML gibt es eine bestimmte Syntax, die sich zwischen einer C # - und einer VB-Anwendung unterscheidet.
Die Schritte sind:
- Für jedes WPF-Projekt: Machen Sie die Ressourcendatei öffentlich, der Standard ist "internal".
- Verwenden Sie für C # WPF-Projekte die im Beispiel bereitgestellte XAML
- Verwenden Sie für VB-WPF-Projekte die im Beispiel bereitgestellte XAML und ändern Sie die Eigenschaft Custom Tool in
PublicVbMyResourcesResXFileCodeGenerator
. - So wählen Sie die Resources.resx-Datei in einem VB-WPF-Projekt aus:
- Wählen Sie das Projekt im Solution Explorer aus
- Wählen Sie "Alle Dateien anzeigen".
- Erweitern Sie Mein Projekt
XAML für VB
<Window x:Class="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:WpfApplication1"
xmlns:my="clr-namespace:WpfApplication1.My.Resources"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Grid>
<StackPanel>
<Label Content="{Binding Source={x:Static my:Resources.MainWindow_Label_Country}}" />
</StackPanel>
</Grid>
Eigenschaften für die Ressourcendatei in VB
Standardmäßig ist die Eigenschaft des benutzerdefinierten Tools für eine VB-Ressourcendatei VbMyResourcesResXFileCodeGenerator
. Mit diesem Codegenerator kann die Sicht (XAML) jedoch nicht auf die Ressourcen zugreifen. Um dieses Problem zu lösen, fügen Sie vor dem Eigenschaftenwert des benutzerdefinierten Tools Public
hinzu.
So wählen Sie die Resources.resx-Datei in einem VB-WPF-Projekt aus:
- Wählen Sie das Projekt im Solution Explorer aus
- Wählen Sie "Alle Dateien anzeigen".
- Erweitern Sie "Mein Projekt"
XAML für C #
<Window x:Class="WpfApplication2.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:WpfApplication2"
xmlns:resx="clr-namespace:WpfApplication2.Properties"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Grid>
<StackPanel>
<Label Content="{Binding Source={x:Static resx:Resources.MainWindow_Label_Country}}"/>
</StackPanel>
</Grid>
Machen Sie die Ressourcen öffentlich
Öffnen Sie die Ressourcendatei mit einem Doppelklick. Ändern Sie den Zugriffsmodifizierer in "Public".