wpf performance xaml freezable

¿Cómo pueden los objetos WPF derivados de Freezable congelarse en XAML?



performance (2)

Agregue esto a sus declaraciones de espacio 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"

luego, en tus objetos freezables, incluye este atributo

po:Freeze="True"

Muchos tipos en WPF derivan de Freezable . Proporciona inmutabilidad a objetos POCO mutables y permite un mejor rendimiento en ciertas situaciones.

Entonces mi pregunta es, ¿cómo puedo congelar objetos en el marcado XAML?

(Tenga en cuenta que también he publicado una pregunta similar pero diferente ).


Para congelar un objeto Freezable declarado en marcado, use 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: Descripción general de objetos de Freezable