2015-11-12 18 views
1

我是WPF的新手,并且已经编写了一个简单的Hello World类型应用程序以便开始使用。我到目前为止的代码如下所示:WPF窗口 - 其他控件在添加超链接控件后无法响应点击

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> 

代码隐藏..

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

如果我注释掉的超链接控制XAML(及其相关后端代码),我可以选择选项,单击提交按钮等。

Howeve r,如果我取消注释超链接控件(及其关联的后端代码),唯一可以点击的是表单上的Url - 发生了什么?

+0

您是否有任何为“超链接”定义的样式? – Domysee

回答

2

公正立场您TextBlock,它不会采取一切空间,在窗口和面面俱到:

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

因为TextBlock被提交在XAML后按钮,它已经结束了。 您还可以设置保证金来定位TextBlock

布局知识网格拉伸平铺
元素和垂直方向上,如果没有对齐设置。

有用的提示:如果你点击TextBlock标签,你会看到TextBlock的程度在设计视图。
通常很有用