Windows Presentation Foundation nos aporta la funcionalidad base para desde ella poder crear controles con estructuras y comportamientos más complejos.
Nos encontramos en ocasiones con que controles que eran para nosotros muy comunes en WinForms ya no está disponibles en WPF, pero sin embargo el tiempo y la complejidad que requiere implementarlos es minúsculo.
Vease por ejemplo el control LinkButton, que no está disponible en WPF y una posible implementación de este basado en un post de Irena Kennedv (Microsoft Consultant Services):
Dentro de nuestra ventana crearíamos un nuevo estilo dentro de los recursos del Grid (o de la ventana, aplicación…) y se lo aplicaríamos a un control Button de WPF mediante el atributo Style=«{StaticResource LinkButtonStyle}».
El estilo que estamos aplicando modifica la plantilla del control y le aporta el comportamiento deseado.
1 | <Window x:Class=«linkdemo.Window1» Cursor=«Hand» TextDecorations=«Underline» TextWrapping=«Wrap» > RecognizesAccessKey=«true»/> Direction=«330» Color=«Black» Opacity=«0.5» Softness=«0.25» /> Style=«{StaticResource LinkButtonStyle}» |
Y además creamos nuestro manejador del evento Click mediante un delegado en nuestro código lateral para darle funcionalidad:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
namespace linkdemo
{
/// <summary>
/// Interaction logic for Window1.xaml
/// </summary>
public partial class Window1 : System.Windows.Window
{
public Window1()
{
InitializeComponent();
}
void LinkButton1_Click(object sender, RoutedEventArgs e)
{
//Escribe tu código aquí…
}
}
}
Pero ¡que caña!. =:-)
Lo he reeditado para que sea visible todo el código.
El FreeTextBoxWrapper del Community Server no tiene en cuenta el tema de mi blog a la hora de representar el código, y algunas líneas de código XAML no eran visibles.
Disculpas a los que han sufrido el error y gracias por vuestros comentarios.
Un saludo.
Ahora bien, viendo este primer ejemplo y el que has puesto después (mejorado), vaya diferencia… al menos en cuanto a cantidad de código…