Hola, quiero abrir un nuevo formulario WPF cuando hago clic en un hipervínculo WPF. Cómo puedo hacer eso. He visto muchos ejemplos que solo abren url web, pero quiero abrir un nuevo formulario WPF.Abra el formulario WPF al hacer clic en el hipervínculo WPF
7
A
Respuesta
15
Puedes lograr esto así:
<Label Height="25" Margin="26,27,116,0" Name="label1" VerticalAlignment="Top">
<Hyperlink Click="Hyperlink_Click">Click Me</Hyperlink>
</Label>
y manejarlo como esto:
private void Hyperlink_Click(object sender, RoutedEventArgs e)
{
Window2 form2 = new Window2();
form2.Show();
}
5
Se podía manejar el evento click:
<Hyperlink Click="Hyperlink_Click">Link</Hyperlink>
private void Hyperlink_Click(object sender, RoutedEventArgs e)
{
Dialogue diag = new Dialogue();
diag.Show();
}
También podría volverse loco con XAML:
<Hyperlink>
<Hyperlink.Style>
<Style TargetType="{x:Type Hyperlink}">
<Style.Triggers>
<EventTrigger RoutedEvent="Hyperlink.Click">
<BeginStoryboard>
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility">
<Storyboard.Target>
<local:Dialogue />
</Storyboard.Target>
<DiscreteObjectKeyFrame KeyTime="0:0:0" Value="{x:Static Visibility.Visible}"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Style.Triggers>
</Style>
</Hyperlink.Style>
<Hyperlink.Inlines>
<Run Text="Open Dialogue"/>
</Hyperlink.Inlines>
</Hyperlink>
Sin embargo, esto es muy problemático, ya que una vez que el el diálogo está cerrado, no se puede volver a abrir, eso significa que cuando haces clic en Hypelin k de nuevo se lanzará una excepción.
El uso de la interactividad que podría hacer esto sin este tipo de problemas (necesita una referencia al SDK Mezcla sin embargo):
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
<Hyperlink>
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<t:CreateDialogAction Type="{x:Type local:Dialogue}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
<Hyperlink.Inlines>
<Run Text="Open Dialogue"/>
</Hyperlink.Inlines>
</Hyperlink>
La acción para esto:
public class CreateDialogAction : TriggerAction<Hyperlink>
{
public Type Type { get; set; }
protected override void Invoke(object parameter)
{
if (Type != null && Type.IsSubclassOf(typeof(Window)) && Type.GetConstructor(Type.EmptyTypes) != null)
{
Window window = Type.GetConstructor(Type.EmptyTypes).Invoke(null) as Window;
window.Show();
}
}
}
1
XAML:
<TextBlock Height="23" HorizontalAlignment="Left" Margin="254,130,0,0" Name="textBlock1" VerticalAlignment="Top">
<Hyperlink Click="Hyperlink_Click">Clique Aqui</Hyperlink>
</TextBlock>
CodeBehind:
private void Hyperlink_Click(object sender, RoutedEventArgs e)
{
MainWindow m = new MainWindow();
m.Show();
}
esto?
0
Y usando MVVM se puede hacer en su Ver
<Hyperlink NavigateUri="{Binding MyUri}"
Command="{Binding OpenHyperlinkCommand}">Link text
</Hyperlink>
y en su modelo de vista
private ICommand _openHyperlinkCommand;
public ICommand OpenHyperlinkCommand {
get
{
if (_openHyperlinkCommand == null)
_openHyperlinkCommand = new RelayCommand<object>(p => ExecuteHyperlink());
return _openHyperlinkCommand;
}
}
private void ExecuteHyperlink() {
//do stuff here
}
Cuestiones relacionadas
- 1. Agregar hipervínculo a WPF WPF
- 2. Llamar a un servlet al hacer clic en el hipervínculo
- 3. Distinga entre hacer doble clic con el mouse y hacer clic con el mouse en wpf
- 4. WPF: hacer que todo el borde haga clic en
- 5. Superíndice/subíndice en hipervínculo en WPF
- 6. WPF Resources.resx cadena con hipervínculo?
- 7. WPF - Haciendo que los hipervínculos se puedan hacer clic
- 8. ¿Cómo puedo hacer clic en un control en WPF?
- 9. WPF: CellEditingTemplate cómo puedo establecer el foco en el control interno haciendo doble clic o al hacer clic
- 10. Justificación de texto en WPF hipervínculo
- 11. Cómo deshabilitar el borde del botón WPF al hacer clic en él?
- 12. Cómo evitar que un expansor WPF se expanda al hacer clic en el encabezado
- 13. Agregar controles mediante programación al formulario WPF
- 14. Ejemplo de uso de hipervínculo en WPF
- 15. Hacer doble clic en el evento en el borde de la ventana de WPF
- 16. cómo hacer clic derecho en el elemento de Listbox y abrir el menú en WPF
- 17. Abra el cuadro de diálogo modal de Jquery al hacer clic en evento
- 18. ¿Cómo hacer clic en un botón de programación en WPF?
- 19. Perder datos de formulario al hacer clic en el botón Atrás en el navegador
- 20. markerClusterer al hacer clic en el zoom
- 21. el clic de jquery no funciona en el hipervínculo
- 22. Html hacer que se pueda hacer clic en el texto sin convertirlo en un hipervínculo
- 23. Hacer clic en el escritorio en un formulario transparente
- 24. Haga clic en evento en UserControl- WPF
- 25. Al hacer clic en una etiqueta para enfocar otro control en WPF
- 26. WPF ListBoxItem haga doble clic en?
- 27. Al hacer clic en HyperLinks en un cuadro de texto enriquecido sin presionar CTRL - WPF
- 28. ¿Cómo hacer WPF DataGridCell ReadOnly?
- 29. Cómo desactivar el "clic derecho" en WPF Webbrowser Control?
- 30. wpf listview haz clic derecho en el problema