0

I am working through learning XAML, and I'm trying to learn how to use a Resource Dictionary to keep my styles consistent across different UIs. I have gotten to this point where I have defined a simple resource dictionary like this:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ControlTemplate x:Key="buttonTemplate" TargetType="{x:Type Button}">
    <Border Background="Red"
            BorderBrush="{TemplateBinding BorderBrush}"
            BorderThickness="{TemplateBinding BorderThickness}"
            CornerRadius="50">
        <ContentPresenter HorizontalAlignment="Center"
                          VerticalAlignment="Center" />
    </Border>
</ControlTemplate>

and my UI xaml file looks like this:

<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="200" Height="200" Topmost="True">
<Window.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="../../../../../folder with resource dictionary/xamlStyles.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Window.Resources>
<!--Rest of UI below-->

My resource dictionary lives 5 folder levels up from my UI.xaml file due to the platform I'm working within (pyRevit. A python interface for building custom tools in Autodesk Revit).

When I run my code that shows this XAML window, I get the following error:

System.IO.IOException: Cannot locate resource 'folder with resource dictionary/xamlstyles.xaml'.

I have also tried putting the dictionary in the same folder as my ui.xaml file and removing the "../../../../../folder with resource dictionary/" portion from the Source and it still can't find the file.

I imagine that the issue has something to do with how pyRevit works. I am not actually compiling a WPF app. I just have IronPython scripts that open a xaml window

DSquad
  • 101
  • 5
  • Did you try to specify an absolut path from the root of the assembly using a pack URI?, e.g.: `` – mm8 Jun 01 '23 at 09:34
  • Thanks for the suggestion. I tried that as well and still getting the same issues... I don't know much about WPF apps, but I feel like this method wouldn't work for my case as I'm not actually building a whole application? – DSquad Jun 02 '23 at 05:16

0 Answers0