SlideShare una empresa de Scribd logo
Reutilizando recursos y
estilos en una aplicación
WPF
D A N A E A G U I L A R G U Z M Á N .
M C T , M C P , M C T S
D A N A E A G U I L A R @ G M A I L . C O M
Contenido del Módulo
Lección 1. Recursos Reutilizables
Lección 2. Estilos
Lección 1. Recursos
Reutilizables
1. Recursos binarios y recursos lógicos
2. Recursos estáticos y dinámicos
3. Diccionarios de recursos
Recursos binarios y recursos
lógicos
1. Recursos binarios
◦ Son archivos
◦ Pueden estar incluidos en al assembly compilado
2. Recursos lógicos
◦ Son objetos .NET
◦ Normalmente definidos en XAML
Definiendo recursos binarios
1. Agregar el archivo al projecto 2. Fijar el valor de Build Action en
Resource
Utilizando recursos binarios
3. Acceder al recurso mediante el URI
4. En C# usar el Pack URI:
<Image Source="Penguins.jpg" />
Image imagen = new Image();
imagen.Source =
new BitmapImage(new Uri("pack://application:,,,/Penguins.jpg"));
Pack URIs
pack://<Authority>/<Folder>/<FileName>
<Authority> puede ser uno de los siguientes
valores:
◦ application:,,,
◦ siteOfOrigin:,,,
Ejemplo:
<Image Source="pack://application:,,,/Imagenes/Penguins.jpg"/>
Pack URIs
Accediendo a recursos en otros assemblies
Ejemplo:
<Image Source="pack://application:,,,/WpfApplication1;component/Imagenes/Penguins.jpg"/>
pack://application:,,,/<AssemblyName>;component/<Folder>/<FileName>
Definiendo recursos lógicos
1. Agregar la propiedad Resoures
2. Dentro Resources
agregar los recursos que quieres usar
después.
3. Cada recurso debe
tener una llave única x:Key
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/pre
sentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Window.Resources>
<SolidColorBrush x:Key="myBrush"
Color="Chocolate" />
</Window.Resources>
</Window>
Utilizando recursos lógicos
3. Acceder al recurso mediante su x:key
* También se puede usar:
<Grid>
<Button Background="{StaticResource myBrush}"
Width="100" Height="30">Clickeame!</Button>
</Grid>
{DynamicResource myBrush}
Utilizando recursos lógicos
3.1. Acceder al recurso usando FindResource
3.2. Acceder directamente la colección Resources
3.3. Asignar un objeto al recurso
SolidColorBrush brush = (SolidColorBrush)button1.FindResource("myBrush");
SolidColorBrush brush = (SolidColorBrush)this.Resources["myBrush"];
SolidColorBrush brush = new SolidColorBrush(Colors.Green);
this.Resources["myBrush"] = brush;
Recursos estáticos y dinámicos
El valor se lee una sola vez
Es mas eficiente
Preferentemente usado
Si el recurso cambia no será
actualizado
Si las propiedades del recurso
cambian pueden ser actualizadas
(Change Notification)
El valor se lee cada vez que
se lo usa
Implica mas procesamiento
Si el recurso cambia será
actualizado
StaticResource DynamicResource
Diccionarios de recursos
1. Agregar Resource Distionary al
proyecto
2. Agregar recursos al diccionario
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2
006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx
/2006/xaml">
<SolidColorBrush x:Key="brushChoco"
Color="Chocolate" />
</ResourceDictionary>
Diccionarios de recursos
3. Hacer un merge que incluya al diccionario junto a
recursos accesibles por ejemplo en Window:
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Dictionary1.xaml" />
</ResourceDictionary.MergedDictionaries>
<SolidColorBrush x:Key="otroBrush" Color="Orange" />
</ResourceDictionary>
</Window.Resources>
Lección 2. Estilos
1. Creando y aplicando estilos
Creando y aplicando estilos
1. Agregar Style como recurso y asignarle un x:Key
2. Asignar el recurso a la propiedad Style
<Window.Resources>
<Style x:Key="estiloBoton">
<Setter Property="Button.FontSize" Value="22"/>
<Setter Property="Button.Background" Value="Yellow"/>
<Setter Property="Button.Foreground" Value="Blue"/>
</Style>
</Window.Resources>
<StackPanel>
<Button Style="{StaticResource estiloBoton}">A</Button>
<Button Style="{StaticResource estiloBoton}">B</Button>
<Button Style="{StaticResource estiloBoton}">C</Button>
</StackPanel>
Creando y aplicando estilos
1. ó especificar TargetType con el tipo de elemento
2. En este caso el estilo se aplicará automáticamente
<StackPanel>
<Button>A</Button>
<Button>B</Button>
<Button>C</Button>
</StackPanel>
<Window.Resources>
<Style TargetType="Button">
<Setter Property="Button.FontSize" Value="22"/>
<Setter Property="Button.Background" Value="Yellow"/>
<Setter Property="Button.Foreground" Value="Blue"/>
</Style>
</Window.Resources>

Más contenido relacionado

La actualidad más candente

Differences in macros between catia v5 and catia v6 or 3dexperience
Differences in macros between catia v5 and catia v6 or 3dexperienceDifferences in macros between catia v5 and catia v6 or 3dexperience
Differences in macros between catia v5 and catia v6 or 3dexperience
Fernando Petre
 
Visual Basic IDE Introduction
Visual Basic IDE IntroductionVisual Basic IDE Introduction
Visual Basic IDE Introduction
Ahllen Javier
 
Advanced java practical semester 6_computer science
Advanced java practical semester 6_computer scienceAdvanced java practical semester 6_computer science
Advanced java practical semester 6_computer science
Niraj Bharambe
 
Types of Drivers in JDBC
Types of Drivers in JDBCTypes of Drivers in JDBC
Types of Drivers in JDBC
Hemant Sharma
 
Asp.net mvc basic introduction
Asp.net mvc basic introductionAsp.net mvc basic introduction
Asp.net mvc basic introduction
Bhagath Gopinath
 
Introduction to ADO.NET
Introduction to ADO.NETIntroduction to ADO.NET
Introduction to ADO.NET
rchakra
 
Aggregate Function - Database
Aggregate Function - DatabaseAggregate Function - Database
Aggregate Function - Database
Shahadat153031
 
PHP filter
PHP filterPHP filter
PHP filter
Sumit Rathore
 
Dbms lifecycle. ..Database System Development Lifecycle
Dbms lifecycle. ..Database System  Development LifecycleDbms lifecycle. ..Database System  Development Lifecycle
Dbms lifecycle. ..Database System Development Lifecycle
Nimrakhan89
 
android content providers
android content providersandroid content providers
android content providersDeepa Rani
 
Database management systems
Database management systemsDatabase management systems
Database management systems
Mohammed El Hedhly
 
Windows form application - C# Training
Windows form application - C# Training Windows form application - C# Training
Windows form application - C# Training
Moutasm Tamimi
 
MS ACCESS (REPORT)
MS ACCESS (REPORT)MS ACCESS (REPORT)
MS ACCESS (REPORT)
Yogesh Singh Baneshi
 
Sql – Structured Query Language
Sql – Structured Query LanguageSql – Structured Query Language
Sql – Structured Query Languagepandey3045_bit
 
Dbms
DbmsDbms
ACN Microproject .pdf
ACN Microproject .pdfACN Microproject .pdf
ACN Microproject .pdf
NayyarKhan8
 
Basic sql Commands
Basic sql CommandsBasic sql Commands
Basic sql Commands
MUHAMMED MASHAHIL PUKKUNNUMMAL
 
Data Dictionary
Data DictionaryData Dictionary
Data Dictionary
Vishal Anand
 
Object Relational Database Management System
Object Relational Database Management SystemObject Relational Database Management System
Object Relational Database Management System
Amar Myana
 

La actualidad más candente (20)

Differences in macros between catia v5 and catia v6 or 3dexperience
Differences in macros between catia v5 and catia v6 or 3dexperienceDifferences in macros between catia v5 and catia v6 or 3dexperience
Differences in macros between catia v5 and catia v6 or 3dexperience
 
Visual Basic IDE Introduction
Visual Basic IDE IntroductionVisual Basic IDE Introduction
Visual Basic IDE Introduction
 
Advanced java practical semester 6_computer science
Advanced java practical semester 6_computer scienceAdvanced java practical semester 6_computer science
Advanced java practical semester 6_computer science
 
Types of Drivers in JDBC
Types of Drivers in JDBCTypes of Drivers in JDBC
Types of Drivers in JDBC
 
Chapter1
Chapter1Chapter1
Chapter1
 
Asp.net mvc basic introduction
Asp.net mvc basic introductionAsp.net mvc basic introduction
Asp.net mvc basic introduction
 
Introduction to ADO.NET
Introduction to ADO.NETIntroduction to ADO.NET
Introduction to ADO.NET
 
Aggregate Function - Database
Aggregate Function - DatabaseAggregate Function - Database
Aggregate Function - Database
 
PHP filter
PHP filterPHP filter
PHP filter
 
Dbms lifecycle. ..Database System Development Lifecycle
Dbms lifecycle. ..Database System  Development LifecycleDbms lifecycle. ..Database System  Development Lifecycle
Dbms lifecycle. ..Database System Development Lifecycle
 
android content providers
android content providersandroid content providers
android content providers
 
Database management systems
Database management systemsDatabase management systems
Database management systems
 
Windows form application - C# Training
Windows form application - C# Training Windows form application - C# Training
Windows form application - C# Training
 
MS ACCESS (REPORT)
MS ACCESS (REPORT)MS ACCESS (REPORT)
MS ACCESS (REPORT)
 
Sql – Structured Query Language
Sql – Structured Query LanguageSql – Structured Query Language
Sql – Structured Query Language
 
Dbms
DbmsDbms
Dbms
 
ACN Microproject .pdf
ACN Microproject .pdfACN Microproject .pdf
ACN Microproject .pdf
 
Basic sql Commands
Basic sql CommandsBasic sql Commands
Basic sql Commands
 
Data Dictionary
Data DictionaryData Dictionary
Data Dictionary
 
Object Relational Database Management System
Object Relational Database Management SystemObject Relational Database Management System
Object Relational Database Management System
 

Destacado

“Terrorismo” busca o consciente em farsa | Teatrojornal
“Terrorismo” busca o consciente em farsa | Teatrojornal“Terrorismo” busca o consciente em farsa | Teatrojornal
“Terrorismo” busca o consciente em farsa | TeatrojornalTatiane Daud
 
Las rocas
 Las rocas Las rocas
Las rocaspuuppii
 
As Floresta e os campos
As Floresta e os camposAs Floresta e os campos
As Floresta e os campos
Anderson Silva
 
Tec futuro
Tec futuroTec futuro
Tec futuro
Lucas Mattos
 
brandon brasil
brandon brasilbrandon brasil
brandon brasil
Brandon Parra
 
Centro Bilingüe San Judas Tadeo- Santiago
Centro Bilingüe San Judas Tadeo- SantiagoCentro Bilingüe San Judas Tadeo- Santiago
Centro Bilingüe San Judas Tadeo- Santiago
Lizbeth Mendoza
 
Presentación1... computacion (ely) (1)
Presentación1... computacion (ely) (1)Presentación1... computacion (ely) (1)
Presentación1... computacion (ely) (1)
eliAgudo
 
Podcast en la enseñanza del Idioma Inglés
Podcast en la enseñanza del Idioma InglésPodcast en la enseñanza del Idioma Inglés
Podcast en la enseñanza del Idioma Inglés
Lupidiloop
 
DXN COLOMBIA EQUIPO ALFA OPORTUNIDAD DE NEGOCIO EN COLOMBIA Y EL MUNDO
DXN COLOMBIA EQUIPO ALFA OPORTUNIDAD DE NEGOCIO EN COLOMBIA Y EL MUNDODXN COLOMBIA EQUIPO ALFA OPORTUNIDAD DE NEGOCIO EN COLOMBIA Y EL MUNDO
DXN COLOMBIA EQUIPO ALFA OPORTUNIDAD DE NEGOCIO EN COLOMBIA Y EL MUNDO
Cesar Coronel
 
23-08-2012 El Gobernador Guillermo Padrés inauguró el primer seminario de roc...
23-08-2012 El Gobernador Guillermo Padrés inauguró el primer seminario de roc...23-08-2012 El Gobernador Guillermo Padrés inauguró el primer seminario de roc...
23-08-2012 El Gobernador Guillermo Padrés inauguró el primer seminario de roc...
Guillermo Padrés Elías
 
Anbientes virtuales de aprendizaje
Anbientes virtuales de aprendizajeAnbientes virtuales de aprendizaje
Anbientes virtuales de aprendizaje
RAFAEL2687
 
Antonio garcia angel marcelo
Antonio garcia angel marceloAntonio garcia angel marcelo
Antonio garcia angel marcelo
Angel Marcelo
 
Paz y seguridad
Paz y seguridadPaz y seguridad
Trabajo maquinas
Trabajo maquinasTrabajo maquinas
Trabajo maquinas
AndreaCastrillon
 
Familia em situação de vulnerabilidade social: uma questão de politicas publicas
Familia em situação de vulnerabilidade social: uma questão de politicas publicasFamilia em situação de vulnerabilidade social: uma questão de politicas publicas
Familia em situação de vulnerabilidade social: uma questão de politicas publicas
Fernanda de Souza Martins
 

Destacado (20)

“Terrorismo” busca o consciente em farsa | Teatrojornal
“Terrorismo” busca o consciente em farsa | Teatrojornal“Terrorismo” busca o consciente em farsa | Teatrojornal
“Terrorismo” busca o consciente em farsa | Teatrojornal
 
Las rocas
 Las rocas Las rocas
Las rocas
 
As Floresta e os campos
As Floresta e os camposAs Floresta e os campos
As Floresta e os campos
 
Tec futuro
Tec futuroTec futuro
Tec futuro
 
ARAMCO RIYADH
ARAMCO RIYADHARAMCO RIYADH
ARAMCO RIYADH
 
brandon brasil
brandon brasilbrandon brasil
brandon brasil
 
Centro Bilingüe San Judas Tadeo- Santiago
Centro Bilingüe San Judas Tadeo- SantiagoCentro Bilingüe San Judas Tadeo- Santiago
Centro Bilingüe San Judas Tadeo- Santiago
 
Presentación1... computacion (ely) (1)
Presentación1... computacion (ely) (1)Presentación1... computacion (ely) (1)
Presentación1... computacion (ely) (1)
 
Podcast en la enseñanza del Idioma Inglés
Podcast en la enseñanza del Idioma InglésPodcast en la enseñanza del Idioma Inglés
Podcast en la enseñanza del Idioma Inglés
 
DXN COLOMBIA EQUIPO ALFA OPORTUNIDAD DE NEGOCIO EN COLOMBIA Y EL MUNDO
DXN COLOMBIA EQUIPO ALFA OPORTUNIDAD DE NEGOCIO EN COLOMBIA Y EL MUNDODXN COLOMBIA EQUIPO ALFA OPORTUNIDAD DE NEGOCIO EN COLOMBIA Y EL MUNDO
DXN COLOMBIA EQUIPO ALFA OPORTUNIDAD DE NEGOCIO EN COLOMBIA Y EL MUNDO
 
CV-FABIO-REV-15 Rev 7-15
CV-FABIO-REV-15 Rev 7-15CV-FABIO-REV-15 Rev 7-15
CV-FABIO-REV-15 Rev 7-15
 
Cv 2016
Cv 2016Cv 2016
Cv 2016
 
23-08-2012 El Gobernador Guillermo Padrés inauguró el primer seminario de roc...
23-08-2012 El Gobernador Guillermo Padrés inauguró el primer seminario de roc...23-08-2012 El Gobernador Guillermo Padrés inauguró el primer seminario de roc...
23-08-2012 El Gobernador Guillermo Padrés inauguró el primer seminario de roc...
 
Anbientes virtuales de aprendizaje
Anbientes virtuales de aprendizajeAnbientes virtuales de aprendizaje
Anbientes virtuales de aprendizaje
 
Antonio garcia angel marcelo
Antonio garcia angel marceloAntonio garcia angel marcelo
Antonio garcia angel marcelo
 
Paz y seguridad
Paz y seguridadPaz y seguridad
Paz y seguridad
 
TAREA Nº2
TAREA Nº2TAREA Nº2
TAREA Nº2
 
Aromaterapia
AromaterapiaAromaterapia
Aromaterapia
 
Trabajo maquinas
Trabajo maquinasTrabajo maquinas
Trabajo maquinas
 
Familia em situação de vulnerabilidade social: uma questão de politicas publicas
Familia em situação de vulnerabilidade social: uma questão de politicas publicasFamilia em situação de vulnerabilidade social: uma questão de politicas publicas
Familia em situação de vulnerabilidade social: uma questão de politicas publicas
 

Más de Danae Aguilar Guzmán

Microsoft HoloLens
Microsoft HoloLensMicrosoft HoloLens
Microsoft HoloLens
Danae Aguilar Guzmán
 
WPF 10. mejorando la funcionalidad y usabilidad de las aplicaciones
WPF 10. mejorando la funcionalidad y usabilidad de las aplicacionesWPF 10. mejorando la funcionalidad y usabilidad de las aplicaciones
WPF 10. mejorando la funcionalidad y usabilidad de las aplicaciones
Danae Aguilar Guzmán
 
WPF 09. procesos asíncronos y programación paralela
WPF 09. procesos asíncronos y programación paralelaWPF 09. procesos asíncronos y programación paralela
WPF 09. procesos asíncronos y programación paralela
Danae Aguilar Guzmán
 
WPF 08 - manejo y vinculación de datos
WPF 08 - manejo y vinculación de datosWPF 08 - manejo y vinculación de datos
WPF 08 - manejo y vinculación de datos
Danae Aguilar Guzmán
 
WPF 07 - gráficos, animación y multimedia
WPF 07 - gráficos, animación y multimediaWPF 07 - gráficos, animación y multimedia
WPF 07 - gráficos, animación y multimedia
Danae Aguilar Guzmán
 
WPF 06 - personalizando los controles de interfaz de usuario
WPF 06 -  personalizando los controles de interfaz de usuarioWPF 06 -  personalizando los controles de interfaz de usuario
WPF 06 - personalizando los controles de interfaz de usuario
Danae Aguilar Guzmán
 
WPF 05 - triggers y eventos
WPF 05 - triggers y eventosWPF 05 - triggers y eventos
WPF 05 - triggers y eventos
Danae Aguilar Guzmán
 
WPF 03 - controles WPF
WPF 03 - controles WPF WPF 03 - controles WPF
WPF 03 - controles WPF
Danae Aguilar Guzmán
 
WPF 02 - construyendo una interfaz de usuario
WPF 02  - construyendo una interfaz de usuarioWPF 02  - construyendo una interfaz de usuario
WPF 02 - construyendo una interfaz de usuario
Danae Aguilar Guzmán
 
WPF 01 - introducción
WPF 01 -  introducciónWPF 01 -  introducción
WPF 01 - introducción
Danae Aguilar Guzmán
 
ASP.NET MVC - introduccion al web api
ASP.NET MVC - introduccion al web apiASP.NET MVC - introduccion al web api
ASP.NET MVC - introduccion al web api
Danae Aguilar Guzmán
 
ASP.NET MVC - bundling y minification
ASP.NET MVC - bundling y minificationASP.NET MVC - bundling y minification
ASP.NET MVC - bundling y minification
Danae Aguilar Guzmán
 
ASP.NET MVC - AJAX
ASP.NET MVC - AJAXASP.NET MVC - AJAX
ASP.NET MVC - AJAX
Danae Aguilar Guzmán
 
ASP.NET MVC - implementando globalizacion and localizacion
ASP.NET MVC - implementando globalizacion and localizacionASP.NET MVC - implementando globalizacion and localizacion
ASP.NET MVC - implementando globalizacion and localizacion
Danae Aguilar Guzmán
 
ASP.NET MVC - areas, manejo de estado
ASP.NET MVC - areas, manejo de estadoASP.NET MVC - areas, manejo de estado
ASP.NET MVC - areas, manejo de estado
Danae Aguilar Guzmán
 
ASP.NET MVC - validacion de datos
ASP.NET MVC - validacion de datosASP.NET MVC - validacion de datos
ASP.NET MVC - validacion de datos
Danae Aguilar Guzmán
 
ASP.NET MVC - layouts y vistas parciales
ASP.NET MVC - layouts y vistas parcialesASP.NET MVC - layouts y vistas parciales
ASP.NET MVC - layouts y vistas parciales
Danae Aguilar Guzmán
 
ASP.NET MVC - Introducción a ASP.NET MVC
ASP.NET MVC - Introducción a ASP.NET MVCASP.NET MVC - Introducción a ASP.NET MVC
ASP.NET MVC - Introducción a ASP.NET MVC
Danae Aguilar Guzmán
 
Crecimiento profesional como desarrollador de software
Crecimiento profesional como desarrollador de softwareCrecimiento profesional como desarrollador de software
Crecimiento profesional como desarrollador de software
Danae Aguilar Guzmán
 
10. consumiendo datos
10. consumiendo datos10. consumiendo datos
10. consumiendo datos
Danae Aguilar Guzmán
 

Más de Danae Aguilar Guzmán (20)

Microsoft HoloLens
Microsoft HoloLensMicrosoft HoloLens
Microsoft HoloLens
 
WPF 10. mejorando la funcionalidad y usabilidad de las aplicaciones
WPF 10. mejorando la funcionalidad y usabilidad de las aplicacionesWPF 10. mejorando la funcionalidad y usabilidad de las aplicaciones
WPF 10. mejorando la funcionalidad y usabilidad de las aplicaciones
 
WPF 09. procesos asíncronos y programación paralela
WPF 09. procesos asíncronos y programación paralelaWPF 09. procesos asíncronos y programación paralela
WPF 09. procesos asíncronos y programación paralela
 
WPF 08 - manejo y vinculación de datos
WPF 08 - manejo y vinculación de datosWPF 08 - manejo y vinculación de datos
WPF 08 - manejo y vinculación de datos
 
WPF 07 - gráficos, animación y multimedia
WPF 07 - gráficos, animación y multimediaWPF 07 - gráficos, animación y multimedia
WPF 07 - gráficos, animación y multimedia
 
WPF 06 - personalizando los controles de interfaz de usuario
WPF 06 -  personalizando los controles de interfaz de usuarioWPF 06 -  personalizando los controles de interfaz de usuario
WPF 06 - personalizando los controles de interfaz de usuario
 
WPF 05 - triggers y eventos
WPF 05 - triggers y eventosWPF 05 - triggers y eventos
WPF 05 - triggers y eventos
 
WPF 03 - controles WPF
WPF 03 - controles WPF WPF 03 - controles WPF
WPF 03 - controles WPF
 
WPF 02 - construyendo una interfaz de usuario
WPF 02  - construyendo una interfaz de usuarioWPF 02  - construyendo una interfaz de usuario
WPF 02 - construyendo una interfaz de usuario
 
WPF 01 - introducción
WPF 01 -  introducciónWPF 01 -  introducción
WPF 01 - introducción
 
ASP.NET MVC - introduccion al web api
ASP.NET MVC - introduccion al web apiASP.NET MVC - introduccion al web api
ASP.NET MVC - introduccion al web api
 
ASP.NET MVC - bundling y minification
ASP.NET MVC - bundling y minificationASP.NET MVC - bundling y minification
ASP.NET MVC - bundling y minification
 
ASP.NET MVC - AJAX
ASP.NET MVC - AJAXASP.NET MVC - AJAX
ASP.NET MVC - AJAX
 
ASP.NET MVC - implementando globalizacion and localizacion
ASP.NET MVC - implementando globalizacion and localizacionASP.NET MVC - implementando globalizacion and localizacion
ASP.NET MVC - implementando globalizacion and localizacion
 
ASP.NET MVC - areas, manejo de estado
ASP.NET MVC - areas, manejo de estadoASP.NET MVC - areas, manejo de estado
ASP.NET MVC - areas, manejo de estado
 
ASP.NET MVC - validacion de datos
ASP.NET MVC - validacion de datosASP.NET MVC - validacion de datos
ASP.NET MVC - validacion de datos
 
ASP.NET MVC - layouts y vistas parciales
ASP.NET MVC - layouts y vistas parcialesASP.NET MVC - layouts y vistas parciales
ASP.NET MVC - layouts y vistas parciales
 
ASP.NET MVC - Introducción a ASP.NET MVC
ASP.NET MVC - Introducción a ASP.NET MVCASP.NET MVC - Introducción a ASP.NET MVC
ASP.NET MVC - Introducción a ASP.NET MVC
 
Crecimiento profesional como desarrollador de software
Crecimiento profesional como desarrollador de softwareCrecimiento profesional como desarrollador de software
Crecimiento profesional como desarrollador de software
 
10. consumiendo datos
10. consumiendo datos10. consumiendo datos
10. consumiendo datos
 

Último

Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdfIntroducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
AbbieDominguezGirond
 
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJECONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
SamuelGampley
 
Maquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfMaquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdf
juanjosebarreiro704
 
PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
juanorejuela499
 
Escaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipoEscaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipo
nicromante2000
 
Caso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La SalleCaso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La Salle
Ecaresoft Inc.
 

Último (6)

Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdfIntroducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
 
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJECONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
 
Maquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfMaquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdf
 
PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
 
Escaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipoEscaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipo
 
Caso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La SalleCaso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La Salle
 

WPF 04 - reutilizando recursos y estilos en una aplicación WPF

  • 1. Reutilizando recursos y estilos en una aplicación WPF D A N A E A G U I L A R G U Z M Á N . M C T , M C P , M C T S D A N A E A G U I L A R @ G M A I L . C O M
  • 2. Contenido del Módulo Lección 1. Recursos Reutilizables Lección 2. Estilos
  • 3. Lección 1. Recursos Reutilizables 1. Recursos binarios y recursos lógicos 2. Recursos estáticos y dinámicos 3. Diccionarios de recursos
  • 4. Recursos binarios y recursos lógicos 1. Recursos binarios ◦ Son archivos ◦ Pueden estar incluidos en al assembly compilado 2. Recursos lógicos ◦ Son objetos .NET ◦ Normalmente definidos en XAML
  • 5. Definiendo recursos binarios 1. Agregar el archivo al projecto 2. Fijar el valor de Build Action en Resource
  • 6. Utilizando recursos binarios 3. Acceder al recurso mediante el URI 4. En C# usar el Pack URI: <Image Source="Penguins.jpg" /> Image imagen = new Image(); imagen.Source = new BitmapImage(new Uri("pack://application:,,,/Penguins.jpg"));
  • 7. Pack URIs pack://<Authority>/<Folder>/<FileName> <Authority> puede ser uno de los siguientes valores: ◦ application:,,, ◦ siteOfOrigin:,,, Ejemplo: <Image Source="pack://application:,,,/Imagenes/Penguins.jpg"/>
  • 8. Pack URIs Accediendo a recursos en otros assemblies Ejemplo: <Image Source="pack://application:,,,/WpfApplication1;component/Imagenes/Penguins.jpg"/> pack://application:,,,/<AssemblyName>;component/<Folder>/<FileName>
  • 9. Definiendo recursos lógicos 1. Agregar la propiedad Resoures 2. Dentro Resources agregar los recursos que quieres usar después. 3. Cada recurso debe tener una llave única x:Key <Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/pre sentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <Window.Resources> <SolidColorBrush x:Key="myBrush" Color="Chocolate" /> </Window.Resources> </Window>
  • 10. Utilizando recursos lógicos 3. Acceder al recurso mediante su x:key * También se puede usar: <Grid> <Button Background="{StaticResource myBrush}" Width="100" Height="30">Clickeame!</Button> </Grid> {DynamicResource myBrush}
  • 11. Utilizando recursos lógicos 3.1. Acceder al recurso usando FindResource 3.2. Acceder directamente la colección Resources 3.3. Asignar un objeto al recurso SolidColorBrush brush = (SolidColorBrush)button1.FindResource("myBrush"); SolidColorBrush brush = (SolidColorBrush)this.Resources["myBrush"]; SolidColorBrush brush = new SolidColorBrush(Colors.Green); this.Resources["myBrush"] = brush;
  • 12. Recursos estáticos y dinámicos El valor se lee una sola vez Es mas eficiente Preferentemente usado Si el recurso cambia no será actualizado Si las propiedades del recurso cambian pueden ser actualizadas (Change Notification) El valor se lee cada vez que se lo usa Implica mas procesamiento Si el recurso cambia será actualizado StaticResource DynamicResource
  • 13. Diccionarios de recursos 1. Agregar Resource Distionary al proyecto 2. Agregar recursos al diccionario <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2 006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx /2006/xaml"> <SolidColorBrush x:Key="brushChoco" Color="Chocolate" /> </ResourceDictionary>
  • 14. Diccionarios de recursos 3. Hacer un merge que incluya al diccionario junto a recursos accesibles por ejemplo en Window: <Window.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="Dictionary1.xaml" /> </ResourceDictionary.MergedDictionaries> <SolidColorBrush x:Key="otroBrush" Color="Orange" /> </ResourceDictionary> </Window.Resources>
  • 15. Lección 2. Estilos 1. Creando y aplicando estilos
  • 16. Creando y aplicando estilos 1. Agregar Style como recurso y asignarle un x:Key 2. Asignar el recurso a la propiedad Style <Window.Resources> <Style x:Key="estiloBoton"> <Setter Property="Button.FontSize" Value="22"/> <Setter Property="Button.Background" Value="Yellow"/> <Setter Property="Button.Foreground" Value="Blue"/> </Style> </Window.Resources> <StackPanel> <Button Style="{StaticResource estiloBoton}">A</Button> <Button Style="{StaticResource estiloBoton}">B</Button> <Button Style="{StaticResource estiloBoton}">C</Button> </StackPanel>
  • 17. Creando y aplicando estilos 1. ó especificar TargetType con el tipo de elemento 2. En este caso el estilo se aplicará automáticamente <StackPanel> <Button>A</Button> <Button>B</Button> <Button>C</Button> </StackPanel> <Window.Resources> <Style TargetType="Button"> <Setter Property="Button.FontSize" Value="22"/> <Setter Property="Button.Background" Value="Yellow"/> <Setter Property="Button.Foreground" Value="Blue"/> </Style> </Window.Resources>