我試圖將靜態資源放在 Styles.xaml 中,它位于 Stringresources 所在的 Resources 檔案夾中。我之前在其他頁面中以相同的方式系結了靜態資源,并且效果很好。現在出現例外,他們說當我運行它時找不到源。
<TextBlock
Text="{Binding Source={StaticResource ResourceKey=AllRooms}}"
TextWrapping="Wrap" FontWeight="Bold" FontSize="16"
FontFamily="Noto Sans CJK KR Regular" HorizontalAlignment="Right"
Margin="0,0,10,0" VerticalAlignment="Center" />
<TextBlock HorizontalAlignment="Left" Margin="10,0,0,0"
FontSize="16" FontFamily="Noto Sans CJK KR Regular"
FontWeight="Bold"
Text="{Binding Source={StaticResource ResourceKey=ByRoom}}"
TextWrapping="Wrap" VerticalAlignment="Center" />
uj5u.com熱心網友回復:
您styles.xaml需要包含在App.xaml.
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Folder_name_if_exists/Styles.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
在此之后,您的樣式將通過以下方式提供StaticResource:
<TextBlock Text="{StaticResource AllRooms}"
TextWrapping="Wrap"
FontWeight="Bold" FontSize="16"
FontFamily="Noto Sans CJK KR Regular"
HorizontalAlignment="Right"
Margin="0,0,10,0"
VerticalAlignment="Center" />
如果您需要*.resx使用本地化字串參考檔案 - 您只需在檔案頂部包含包含名稱空間,然后通過{x:Static}.
xmlns:res="clr-namespace:MyApp.NestedNamespace.Resources"
...
<TextBlock Text="{Binding Source={x:Static res.NameOfResourcesFile.NameOfResourceString}}"
TextWrapping="Wrap"
FontWeight="Bold" FontSize="16"
FontFamily="Noto Sans CJK KR Regular"
HorizontalAlignment="Right"
Margin="0,0,10,0"
VerticalAlignment="Center" />
更新
由于您的資源是靜態的,因此保持宣告順序從最獨立的資源到最依賴的資源很重要。
例如:如果您有一本帶有顏色和畫筆的字典以及另一本帶有使用這些顏色的樣式的字典 - 它們的宣告順序應如下所示:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Folder_name_if_exists/BrushesAndColors.xaml"/>
<ResourceDictionary Source="/Folder_name_if_exists/Styles.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
以其他方式宣告它們會導致例外。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/472170.html
