2010-05-19 3 views
1

Pour utiliser les images dans WPF, vous pouvez définir:WPF ressources Dictionnaire XSLT

<ResourceDictionary 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 
    <BitmapImage x:Key="ImageFunTime" 
       UriSource="../Resources/Images/ImageFunTime.png" /> 
</ 

Ensuite, dans l'application quelque part, vous pouvez:

var img = (ImageSource)positionsTab.TryFindResource("ImageFunTime"); 

Comment puis-je obtenir la même chose avec un fichier xslt intégré? Autrement dit, ce qui est la syntaxe dans le dictionnaire des ressources, comme évidemment pas une image bitmap ...

TIA

+0

Bonne question (+1). Voir ma réponse pour une solution complète. :) –

Répondre

0

Comment puis-je obtenir la même chose avec un fichier xslt intégré?

Réponses:

  1. Aucun des processeur XSLT de Microsoft prend en charge Embedded feuilles de style XSLT. Vous aurez besoin d'un fichier XSLT complet pour votre feuille de style XSLT. En XSLT on utilise l'instruction <xsl:key> et la fonction key() pour une sélection efficace des nœuds par une valeur de chaîne qui les identifie de manière unique.

Cette transformation:

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
> 
<xsl:output omit-xml-declaration="yes" indent="yes"/> 

<xsl:key name="UriSourceByKey" 
    match="@UriSource" use="../@x:Key"/> 

<xsl:variable name="vImageFunTime" 
    select="key('UriSourceByKey', 'ImageFunTime')"/> 

<xsl:template match="/"> 
    <xsl:value-of select="$vImageFunTime"/> 
</xsl:template> 
</xsl:stylesheet> 

lorsqu'il est appliqué sur ce document XML:

<ResourceDictionary 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 

    <BitmapImage x:Key="ImageFunTime" UriSource="../Resources/Images/ImageFunTime.png" /> 
</ResourceDictionary> 

produit le résultat recherché:

../Resources/Images/ImageFunTime.png 
+0

Je pense que l'OP veut déclarer une feuille de style XSLT comme une ressource (comme l'image en question) et ensuite la réintégrer dans l'application C#. –

+0

@Alejandro: Ensuite, s'il demande quel devrait être le type de ressource, la réponse est: string. –

Questions connexes