在上一篇WPF顯示SQLITE數據(一)中,關於鏈接的字段,只是顯示了下劃線,單擊後連接到瀏覽器的對應頁面並沒有實現,下面給出單擊事件的實現
1.在xaml中寫入事件定義
1 <DataGridHyperlinkColumn Header="URL地址" Width="940" Binding="{Binding url, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"> 2 <DataGridHyperlinkColumn.ElementStyle> 3 <Style> 4 <EventSetter Event="Hyperlink.Click" Handler="Hyperlink_Click"/> 5 </Style> 6 </DataGridHyperlinkColumn.ElementStyle> 7 </DataGridHyperlinkColumn>
2.在MainWindow.xaml.cs中寫入
1 private void Hyperlink_Click(object sender, RoutedEventArgs e) 2 { 3 System.Windows.Documents.Hyperlink link = (System.Windows.Documents.Hyperlink)e.OriginalSource; 4 //Process.Start("IEXPLORE.EXE",link.NavigateUri.AbsoluteUri); 5 string url = link.NavigateUri.AbsoluteUri; 6 Process p = new Process(); 7 p.StartInfo.FileName = "cmd.exe"; 8 p.StartInfo.UseShellExecute = false; //不使用shell啓動 9 p.StartInfo.RedirectStandardInput = true;//喊cmd接受標準輸入 10 p.StartInfo.RedirectStandardOutput = false;//不想聽cmd講話所以不要他輸出 11 p.StartInfo.RedirectStandardError = true;//重定向標準錯誤輸出 12 p.StartInfo.CreateNoWindow = true;//不顯示窗口 13 p.Start(); 14 15 //向cmd窗口發送輸入信息 後面的&exit告訴cmd運行好之後就退出 16 p.StandardInput.WriteLine("start " + url + "&exit"); 17 p.StandardInput.AutoFlush = true; 18 p.WaitForExit();//等待程序執行完退出進程 19 p.Close(); 20 }
即可實現。
開始按照網上一些資料寫Process.Start("IEXPLORE.EXE",link.NavigateUri.AbsoluteUri);,試了後發現會報錯,查閱資料後,改爲了模擬控制檯的
start + url +&exit形式打開網頁鏈接,測試成功!