Aquí hay una gran cantidad de características ocultas discutidas para una variedad de idiomas. ¿Ahora tengo curiosidad sobre algunas características ocultas de XAML y WPF?
Uno que he encontrado es el evento de clic en el encabezado de un ListView
<ListView x:Name='lv'
Height="150"
GridViewColumnHeader.Click="GridViewColumnHeaderClickedHandler">
La propiedad GridViewColumnHeader.Click no está en la lista.
Algunas de las características relevantes hasta ahora:
Ver también:
- Características ocultas de C #
- Características ocultas de Python
- Características ocultas de ASP.NET
- Características ocultas de Perl
- Características ocultas de Java
- Características ocultas de VB.NET
- Características ocultas de PHP
- Características ocultas de Ruby
- Características ocultas de C
- Y así........
wpf
xaml
hidden-features
Sauron
fuente
fuente
Respuestas:
Multibinding (combinado con StringFormat):
fuente
También hay un truco PresentationTraceSources.TraceLevel para depurar lo que está sucediendo con los enlaces en cualquier escenario particular. Todo lo que tiene que hacer es hacer referencia al espacio de nombres System.Diagnostics en el ensamblado de WindowsBase
y luego agregue lo siguiente a la expresión de enlace:
El registro será así:
fuente
3.5sp1 introdujo TargetNullValue en los enlaces. Esto establecerá la propiedad vinculada en Null si se ingresa el valor y si su propiedad es Null, mostrará este valor.
fuente
3.5sp1 introdujo StringFormat en expresiones de enlace, por ejemplo
fuente
Text={Binding Date, StringFormat='{}{0:MM/dd/yyyy}'}"
A veces se obtiene una cadena que es demasiado larga para mostrar en la etiqueta. En este caso podemos hacer uso de la
TextTrimming
propiedad deTextBlock
mostrar elipsesEnlace MSDN
fuente
Agregar efecto Aero a la ventana
fuente
Genéricos en XAML con x: TypeArguments
Si desea utilizar una ObservableCollection en XAML, debe crear un tipo que se derive de ObservableCollection porque no puede declararlo en XAML. Con XAML 2009 puede usar el atributo x: TypeArguments para definir el tipo de un tipo genérico.
fuente
Mostrar información sobre herramientas en un control deshabilitado
Wpf permite mostrar información sobre herramientas en un control, si está en estado deshabilitado.
Por ejemplo
fuente
Uso de constructores no predeterminados con x: argumentos
En XAML 2006, los objetos deben tener un constructor público predeterminado para usarlos. En XAML 2009 puede pasar argumentos de constructor usando la sintaxis x: Arguments.
fuente
No es realmente una función oculta, pero con WPF / XAML obtienes Bea Stollnitz y Josh Smith . Reina y Rey de la programación WPF / XAML.
fuente
Las extensiones de marcado y las propiedades adjuntas son mis características favoritas, le permiten ampliar el "vocabulario" XAML de una manera muy elegante.
Extensiones de marcado
Propiedades adjuntas
Fuente para GridViewSort (por cierto, utiliza el
GridViewColumnHeader.Click
evento mencionado por Ortus)fuente
WinUtil.EnableAeroGlass
disponible en alguna parte?Puede hacer referencia a tipos anidados en XAML utilizando el signo más (
+
). Por ejemplo, si tuviéramos esta clase:Podríamos referirnos
SomeValue
en XAML usando la siguiente sintaxis:Esta sintaxis no está documentada en MSDN y no es oficialmente compatible. Alguien preguntó al respecto en los foros de MSDN, y aparentemente rompe el Diseñador WPF de VS2010. Se ha informado en Microsoft Connect.
fuente
Compartir el tamaño de la cuadrícula ( aquí hay un buen ejemplo). En pocas palabras, puede hacer que las columnas y filas de la cuadrícula compartan tamaños, incluso en diferentes cuadrículas. Esto será invaluable para todas las personas que están usando DataGrids sin la necesidad de editar los datos en su lugar.
fuente
PriorityBinding . Le permite utilizar enlaces asínicos en un orden de "primero en llegar primero en mostrar":
fuente
Uso de métodos de fábrica estáticos con x: FactoryMethod
Cuando tiene un tipo que no tiene un constructor público sino un método de fábrica estático, tuvo que crear ese tipo de código en XAML 2006. Con XAML 2009 puede usar el atributo x: FactoryMethodx: Arguments para pasar los valores del argumento.
fuente
Propiedades avanzadas de "subtítulos"
Otra cosa que no está muy clara es que el contenido de algunas propiedades a las que estamos acostumbrados contiene solo texto. Si la propiedad de un elemento GUI es de tipo Objeto, es muy probable que pueda, en lugar de simplemente configurar el texto, agregar un panel de su necesidad que incluya un conjunto de controles.
Un ejemplo de esto es el MenuItem, donde el
Header
propiedad (que normalmente solo contiene texto) puede contener un conjunto de elementos de GUI envueltos en un control de panel (o solo un elemento de GUI si necesita solo uno).También tenga en cuenta la
Icon
propiedad en el MenuItem. Esto normalmente contiene un elemento de imagen, ¡pero también puede contener cualquier cosa!fuente
Convertidores XAML
La siguiente lista muestra los convertidores desarrollados por la comunidad WPF para convertir diferentes formatos a XAML o viceversa.
Adobe Illustrator XAML Export Plugin
Adobe Photoshop al convertidor de XAML
Complemento de exportación Blender XAML
Lightwave XAML Export Plugin
Exportación de Visio XAML
Convertidor 3D Studio Max a XAML
Convertidor Maya a XAML
Convertidor de Flash a XAML
Convertidor SVG a XAML
Convertidor WMF / EMF a XAML
fuente
Tipos incorporados
Si desea agregar objetos de tipos simples como cadena o doble a un diccionario de recursos hoy, necesita asignar los espacios de nombres clr necesarios a espacios de nombres XML. En XAML 2009 tenemos muchos tipos simples que se incluyen en el lenguaje XAML.
Los siguientes tipos se incluyen en el lenguaje XAML:
fuente
Referencias de objetos fáciles con {x: Reference}
Si desea crear una referencia de objeto hoy, necesita hacer un enlace de datos y declarar la fuente con un ElementName. En XAML 2009 puede usar la nueva extensión de marcado {x: Reference}
fuente
x:Reference
es una característica del lenguaje XAML 2009, hay algunos escenarios en los que funcionará también en XAML compilado. Sin embargo, no funciona en todas partes y puede romper la vista del diseñador XAML.Uso de colores del sistema
fuente
Soporte para claves de diccionario arbitrarias
En XAML 2006, todos los valores explícitos de x: clave se trataron como cadenas. En XAML 2009, puede definir cualquier tipo de clave que desee escribiendo la clave en ElementSyntax.
fuente
Establecer un error de validación por código
Una ValidatioRule en una BindingExpression solo se activa cuando cambia el lado de destino del enlace. Si desea establecer un error de validación por código, puede usar el siguiente fragmento.
Establecer el error de validación
Borrar el error de validación
fuente
La capacidad de rellenar UIElement (s) en un TextBlock
No sé cuán útil (aunque califica como oculto) esto es ... pero seguro que me tomó por sorpresa cuando lo encontré por primera vez :
Podría argumentar que el siguiente xaml podría ser útil (es decir, poner un gráfico al final de algún texto):
El xaml anterior se muestra como el siguiente:
fuente
Depuración de animaciones
Errores comunes
Si obtiene el siguiente error: No se puede animar '(0). (1)' en una instancia de objeto inmutable. podría ser que se encuentre con una de las siguientes limitaciones:
fuente
Enlace sin INotifyPropertyChanged o DependencyProperties
Como se discutió aquí , puede vincular una propiedad de objeto CLR simple sin INotifyPropertyChanged, y simplemente funcionará .
Aquí está el Forumpost al que me refiero.
Citar:
Aquí hay otro gran y detallado artículo sobre el tema.
fuente