2009-04-28 7 views

Respuesta

38

Para congelar un objeto Freezable declaradas en el marcado, se utiliza el atributo Freeze definido en el espacio de nombres XML http://schemas.microsoft.com/winfx/2006/xaml/presentation/options.

En el siguiente ejemplo, un SolidColorBrush se declara como un recurso de página y se congela. Luego se usa para establecer el fondo de un botón.

<Page 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:po="http://schemas.microsoft.com/winfx/2006/xaml/presentation/options" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    mc:Ignorable="po"> 

    <Page.Resources> 
    <!-- This brush is frozen --> 
    <SolidColorBrush x:Key="MyBrush" po:Freeze="True" Color="Red" /> 
    </Page.Resources> 

    <!-- Use the frozen brush --> 
    <Button Background="{StaticResource MyBrush}">Click Me</Button> 

</Page> 

Fuente: Freezable Objects Overview

+2

¿No debería el último atributo ser 'mc: Ignorable =" po "'? – CodeNaked

+0

@CodeNaked, creo que tienes razón. Editado –

9

Añadir esto a sus declaraciones de espacios de nombres XAML:

xmlns:po="http://schemas.microsoft.com/winfx/2006/xaml/presentation/options" 
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
mc:Ignorable="po" 

entonces, en sus objetos Freezable, incluir este atributo

po:Freeze="True" 
+0

dónde viene el espacio de nombres 'mc' viene? –

+0

Oh, creo que me perdí eso. Solucionado ahora – Botz3000

Cuestiones relacionadas