I have a WPF window in which some properties are defined as dynamic resources like this:
<Window x:Class="LocSample.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
MinHeight="350" MinWidth="525"
Title="{DynamicResource ResourceKey=ResId_Title}"
FlowDirection="{DynamicResource ResId_FlowDirection_Default}" >
<Grid>
<Label Content="{DynamicResource ResId_FirstName}" />
</Grid>
</Window>
The ResourceDictionary
is loaded at runtime to reflect the language choice of the user. And to enable the user to switch the language on the fly.
This works fine at runtime, but at design-time, the resource-defined properties are not shown. It is clear to me that the designer can't show them, because they are not defined at design-time.
I need a way to load a default ResourceDictionary
at design-time so that the designer can show anything.
EDIT:
In Blend, you can use a Design-time Resources Dictionary file for this case. Visual Studio can read that file but doesn't have the tooling to create one. But if you're not afraid of project files, you can do that by hand.
<Page Include="Properties\DesignTimeResources.xaml" Condition="'$(DesignTime)'=='true' OR ('$(SolutionPath)'!='' AND Exists('$(SolutionPath)') AND '$(BuildingInsideVisualStudio)'!='true' AND '$(BuildingInsideExpressionBlend)'!='true')">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
<ContainsDesignTimeResources>true</ContainsDesignTimeResources>
</Page>
Now you can merge all the resource dictionaries you need in the file. Compiler will ignore it, but the designer won't.
See not my article for more details.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With