[WPF] Alleen lokale resources worden geladen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 12-09 06:48
Ik ben bezig met een applicatie waarbij ik mijn resources in een externe assembly defineer. Ik heb bijvoorbeeld een ResourceAssembly (ik gebruik andere namen, maar voor het voorbeeld ...). Daarin heb ik een map, bijvoorbeeld Graphics, en daarin een ResourceDictionary, bijvoorbeeld CommonResources.xaml.

In mijn App.xaml refereer ik deze:
XML:
1
2
3
4
5
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="pack://application:,,,/ResourceAssembly;component/Graphics/CommonResources.xaml" />
                
<!-- en nog een aantal -->
            </ResourceDictionary.MergedDictionaries>


In CommonResources.xaml staat dan zoiets:
XML:
1
2
3
4
    <BitmapImage x:Key="Logo" UriSource="/ResourceAssembly;component/Graphics/Logo.png" />
    <BitmapImage x:Key="TeamLogo" UriSource="/ResourceAssembly;component/Graphics/TeamLogo.png" />

    <SolidColorBrush x:Key="SplashScreenBackground" Color="BlueViolet" />


Nu wil ik deze resources natuurlijk gebruiken, bijvoorbeeld in één van mijn user controls. Ik doe dan:
• <... Background="{DynamicResource SplashScreenBackground}" />
• <Image x:Name="TeamLogo" Source="{DynamicResource TeamLogo}" />
• <Image x:Name="TeamLogo" Source="{StaticResource TeamLogo}" "/>

Design-time werkt dit altijd en er zijn geen problemen. Echter, run-time gooit de StaticResource een exception op dat de resource niet gevonden kan worden en de DynamicResource die laadt simpelweg niet.

Ik kan het alleen werkend krijgen door de zooi uit mijn resource dictionary te kopieren en plakken in mijn resources van (bijvoorbeeld) mijn UserControl (<UserControl.Resources> dus).

Heeft iemand enig idee waarom het niet werkt @ runtime?

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]


Acties:
  • 0 Henk 'm!

  • gehlan
  • Registratie: Maart 2004
  • Laatst online: 13-04-2022
Bij StaticResources is geloof ik de volgorde van belang, hou je hier wel rekening mee?

Het is iig wel mogelijk, ik heb het zelf ook wel eens gedaan. Controleer of je pack URI zeken weten klopt.
Zie ook: http://stackoverflow.com/...ry-in-a-separate-assembly

[ Voor 6% gewijzigd door gehlan op 15-03-2011 14:33 ]


Acties:
  • 0 Henk 'm!

  • BasSpruit
  • Registratie: September 2002
  • Laatst online: 09-04-2022
Ik werk op dit moment met een zelfde hierarchie van resource dictionaries in een applicatie met plugins (deze leveren de eigenlijke functionaliteit).

Wat ik eigenlijk wil is een style op ALLE {DataGridColumnHeader}s, maar dat werkt op de een of andere manier niet volledig. Mijn style is:
XML:
1
2
3
<Style x:Key="{x:Type DataGridColumnHeader}" TargetType="DataGridColumnHeader">
  <Setter Property="Background" Value="Gray" />
</Style>


maar niet alle datagrids luisteren hiernaar (sommige wel, andere weer niet), en het maakt hierbij niet uit of ik een key instel, of bij het datagrid een name. Heeft iemand een idee van wat er zou kunnen gebeuren?

b.t.w. de resource dictionary zelf wordt wel gevonden...

[ Voor 4% gewijzigd door BasSpruit op 30-11-2012 15:13 ]


Acties:
  • 0 Henk 'm!

  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

En bij de datagrids waarbij het niet werkt is niet toevallig een andere Style property gezet (eventueel in de codebehind)?

If it isn't broken, fix it until it is..


Acties:
  • 0 Henk 'm!

  • BasSpruit
  • Registratie: September 2002
  • Laatst online: 09-04-2022
Niemand_Anders schreef op zaterdag 01 december 2012 @ 23:41:
En bij de datagrids waarbij het niet werkt is niet toevallig een andere Style property gezet (eventueel in de codebehind)?
Had ik nog niet aan gedacht, eerlijk gezegd. Ik heb dit even gecontroleerd, en ik zie dat bij sommige datagrids waar het stylen niet gebeurd zoals verwacht, dat er helemaal geen styles in de xaml of CS worden geplaatst. In sommige grids waar het wel werkt, heb ik wel bijvoorbeeld een rowstyle gekoppeld in xaml.

Wat ik nu ook zie is dat een ander stukje xaml
XML:
1
2
3
4
5
6
7
8
9
10
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Style TargetType="DataGridCell">
        <Style.Triggers>
            <Trigger Property="IsSelected" Value="True">
                <Setter Property="Background" Value="#CCDAFF" />
            </Trigger>
        </Style.Triggers>
    </Style>
</ResourceDictionary>

precies het tegenovergestelde reageert (het ene stukje xaml reageert in het ene geval, en het andere stukje xaml in de andere gevallen.).