0

私は WPF アプリケーションを作成しており、1 つのユーザー コントロールで DataGrid のハイパーリンクを使用していますが、機能していません。テストのためだけにbing.comを使用しています。

<DataGrid Grid.Row="1" 
  AutoGenerateColumns="False" 
  Height="Auto" 
  Name="dataGrid1" 
  Width="Auto" 
  CanUserAddRows="False" 
  CanUserResizeColumns="True" 
  HorizontalAlignment="Stretch" 
  VerticalAlignment="Stretch" 
  Focusable="True" 
  IsHitTestVisible="False" 
  BorderThickness="0">
    <DataGrid.Columns >
        <DataGridTextColumn Header="Start Time" Width="*" Binding="{Binding Path=startTime}" CanUserSort="True"/>
        <DataGridTextColumn Header="End Time"   Width="*" Binding="{Binding Path=endTime}" CanUserSort="True"/>
        <DataGridTextColumn Header="Resources"  Width="*" Binding="{Binding Path=resources}" CanUserSort="True"/>
        <DataGridTextColumn Header="Action"  Width="*" Binding="{Binding Path=action}" CanUserSort="True"/>
        <DataGridTextColumn Header="Result"  Width="*" Binding="{Binding Path=result}" CanUserSort="True"/>
        <DataGridTemplateColumn Header="Health"  Width="*" CanUserSort="True">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <TextBlock >
                        <Hyperlink NavigateUri="http://www.bing.com" RequestNavigate="Hyperlink_RequestNavigate"><!--"{Binding Path=healthUri}">-->
                            <TextBlock Text="{Binding Path=healthUri}" Focusable="True" />                                                                                    
                        </Hyperlink>                                    
                    </TextBlock>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
    </DataGrid.Columns>
</DataGrid>
4

1 に答える 1

1

MSDN から:

ハイパーリンク ナビゲーションは、ハイパーリンクの直接的または間接的な親がナビゲーション ホスト (NavigationWindow、Frame、または XBAP をホストできる任意のブラウザー (Internet Explorer 7、Microsoft Internet Explorer 6、および Firefox 2.0+ を含む) を含む) である場合にのみ発生します。

できるよ:

<Hyperlink NavigateUri="http://www.bing.com" RequestNavigate="Hyperlink_RequestNavigate">

private void Hyperlink_RequestNavigate(object sender, RequestNavigateEventArgs e)
{
    Process.Start(new ProcessStartInfo(e.Uri.AbsoluteUri));
    e.Handled = true;
}
于 2012-05-26T11:27:37.887 に答える