2015-11-12 2 views
1

Je suis nouveau sur WPF et j'ai écrit une simple application de type hello world pour commencer. Le code que j'ai jusqu'à présent est indiqué ci-dessous:Fenêtre WPF - les autres contrôles ne répondent pas aux clics après l'ajout du contrôle de lien hypertexte

WPF XAXML

<Window x:Name="wndMain" x:Class="MyApp.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:ews="clr-namespace:ExtraWindowStyles" 
     ResizeMode="NoResize" 
     ews:ExtraWindowStyles.CanMinimize="false" 
     ews:ExtraWindowStyles.CanMaximize="false"   
     Title="Hello World" Height="501.492" Width="842.285"> 
    <Grid> 
     <GroupBox Header="Input Parameters" HorizontalAlignment="Left" Height="173" Margin="10,25,0,0" VerticalAlignment="Top" Width="801" > 
      <StackPanel Orientation="Horizontal" Margin="0,0,96,0"> 
       <StackPanel Margin="10"> 
        <Label FontWeight="Bold">First Group</Label> 
        <RadioButton x:Name="opt11">Option 1 - 1</RadioButton> 
        <RadioButton x:Name="opt12">Option 1 - 2</RadioButton> 
        <RadioButton x:Name="opt13">Option 1 - 3</RadioButton> 
       </StackPanel> 
       <StackPanel Margin="10"> 
        <Label FontWeight="Bold" Content="Second Group"/> 
        <RadioButton x:Name="opt21" Content="Option 2 - 1"/> 
        <RadioButton x:Name="opt22" Content="Option 2 - 2"/> 
        <RadioButton x:Name="opt23" Content="Option 2 - 3"/> 
       </StackPanel> 
      </StackPanel> 

     </GroupBox> 
     <Separator HorizontalAlignment="Left" Height="80" Margin="17,203,0,0" VerticalAlignment="Top" Width="794"/> 
     <Button x:Name="btnSubmit" Content="Submit" HorizontalAlignment="Left" Height="34" Margin="632,203,0,0" VerticalAlignment="Top" Width="179" Click="btnExplore_Click" /> 
     <Label Content="Results:" HorizontalAlignment="Left" Height="28" Margin="10,242,0,0" VerticalAlignment="Top" Width="161"/> 
     <Label Content="My App" HorizontalAlignment="Left" Height="23" Margin="696,439,0,0" VerticalAlignment="Top" Width="130" FontSize="9"/> 
     <TextBlock>   
      <Hyperlink NavigateUri="http://www.google.com" RequestNavigate="Hyperlink_RequestNavigate"> 
       Click Here 
      </Hyperlink> 
     </TextBlock> 
     <Rectangle Fill="#FFF4F4F5" HorizontalAlignment="Left" Height="162" Margin="17,270,0,0" Stroke="Black" VerticalAlignment="Top" Width="794"/> 
     <Label x:Name="lblResult" Content="" HorizontalAlignment="Left" Height="157" Margin="17,275,0,0" VerticalAlignment="Top" Width="794"/> 
    </Grid> 
</Window> 

code Derrière ..

private void Hyperlink_RequestNavigate(object sender, RequestNavigateEventArgs e) 
{ 
    Process.Start(new ProcessStartInfo(e.Uri.AbsoluteUri)); 
    e.Handled = true; 
} 

Si je commente le contrôle Hyperlink XAML (et ses associés code backend), je suis en mesure de sélectionner des options, cliquez sur le bouton Envoyer, etc.

Howeve r, si je ne commente pas le contrôle Hyperlink (et son code backend associé), La seule chose qui reste cliquable, est l'URL sur le formulaire - que se passe-t-il?

+0

Avez-vous des styles définis pour 'Hyperlink'? – Domysee

Répondre

2

position juste votre TextBlock et il ne prendra pas tout l'espace dans la fenêtre et couvrir tout:

<TextBlock Width="100" Height="30"> 
    <Hyperlink Background="Red" NavigateUri="http://www.google.com" > 
     Click Here 
    </Hyperlink> 
</TextBlock> 

Parce que le TextBlock est soumis après le bouton en XAML est terminée. Vous pouvez également définir la marge pour positionner le TextBlock

connaissance de la mise en page
éléments dans une grille extensible horizontalement et verticalement si aucun alignement est défini.

Conseil utile: Si vous cliquez sur l'étiquette TextBlock, vous verrez l'étendue du TextBlock dans la vue de la conception.
Souvent utile