Pregunta

Tengo un archivo XAML suelta ...

<Style
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:MyNamespace"
    TargetType="{x:Type local:CustomControl}">
    <Setter Property="HoverOpacity" Value="1.0"/>
</Style>

... que quiero cargar en tiempo de ejecución. Cuando me puedo obtener una excepción indicando, "Tipo de referencia no puede encontrar el tipo público denominado 'CustomControl'." ¿Cómo puedo hacer el XAML suelta consciente de mi espacio de nombres?

Tengo que utilizar HoverOpacity que es una propiedad de dependencia de la CustomControl. Aquí está el código que estoy utilizando actualmente para cargar el XAML:

var resource = Application.GetResourceStream(new Uri("pack://application:,,,/Assets/HoverStyle.xaml"));

XamlReader.Load(resource.Stream);

Por cierto, me di cuenta de que el XAML es simple y tan sólo pudiera insertar el Style en el código, pero esto es una XAML hola mundo; su va a ser mucho más complejo, que incluye animaciones y tal.

P.S. Otra solución sería una forma de cualquiera de adjuntar un archivo XAML a un control personalizado derivado de panel (uno que no bloquee Visual Studio 2008) o una forma de enganchar con facilidad disparadores, ficha disparadores, entrada acciones y acciones de salida a controles personalizados.

¿Fue útil?

Solución

Gosh caray, lo he descubierto. Que necesitaba para especificar el nombre de ensamblado con el espacio de nombres; de esta manera:

<Style
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:MyNamespace;assembly=MyAssembly"
    TargetType="{x:Type local:CustomControl}">
    <Setter Property="HoverOpacity" Value="1.0"/>
</Style>

Me va a dar crédito respuesta a cualquiera que pudiera responder a mi "P. S." cuestionar dentro de los próximos dos días. Toda esta situación parece un poco húmeda, por lo que estaría muy interesado en las alternativas.

Gracias:)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top