嘿,我想打開一個新的WPF表單,當我點擊一個WPF超鏈接。我怎樣才能做到這一點。我見過很多隻能打開網址的例子,但我想打開一個新的WPF表單。點擊WPF超鏈接打開WPF表格
7
A
回答
15
你可以這樣做:
<Label Height="25" Margin="26,27,116,0" Name="label1" VerticalAlignment="Top">
<Hyperlink Click="Hyperlink_Click">Click Me</Hyperlink>
</Label>
和處理這樣的:
private void Hyperlink_Click(object sender, RoutedEventArgs e)
{
Window2 form2 = new Window2();
form2.Show();
}
5
你可以只處理click事件:
<Hyperlink Click="Hyperlink_Click">Link</Hyperlink>
private void Hyperlink_Click(object sender, RoutedEventArgs e)
{
Dialogue diag = new Dialogue();
diag.Show();
}
你也可以去瘋狂與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>
然而,這是非常有問題的,因爲一旦對話已關閉,無法重新打開,這意味着當您單擊hypelin時k再次拋出異常。
使用的交互性,你可以做到這一點沒有這樣的問題(需要對混合SDK的引用雖然):
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>
這樣做的動作:
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>
代碼隱藏:
private void Hyperlink_Click(object sender, RoutedEventArgs e)
{
MainWindow m = new MainWindow();
m.Show();
}
呢?
0
而且使用MVVM,你可以在你的瀏覽
<Hyperlink NavigateUri="{Binding MyUri}"
Command="{Binding OpenHyperlinkCommand}">Link text
</Hyperlink>
,並在您的視圖模型
private ICommand _openHyperlinkCommand;
public ICommand OpenHyperlinkCommand {
get
{
if (_openHyperlinkCommand == null)
_openHyperlinkCommand = new RelayCommand<object>(p => ExecuteHyperlink());
return _openHyperlinkCommand;
}
}
private void ExecuteHyperlink() {
//do stuff here
}
做
相關問題
- 1. WPF Datagrid的超鏈接右鍵點擊
- 2. WPF白/ UIAutomation超鏈接點擊
- 3. 點擊超鏈接提交表格
- 4. 從超鏈接打開訪問表格
- 5. 如何打開一個超鏈接(2)打開與點擊Hyperlink1
- 6. 添加超鏈接到WPF WPF
- 7. 打開鏈接點擊
- 8. 打開鏈接點擊CardView
- 9. WPF:點擊按鈕打開新窗口
- 10. wpf contextmenu點擊打開子菜單
- 11. 如何打開一個Excel超鏈接點擊Excel表?
- 12. WPF超鏈接GridView的選定項目點擊
- 13. 捕捉超級鏈接點擊顯示在WPF框架
- 14. 點擊超鏈接(navigateuri)應該在WPF MVVM
- 15. WPF打開超鏈接的嵌入式程序
- 16. WPF超鏈接圖像
- 17. wpf中的超鏈接
- 18. WPF - DataGrids中的超鏈接
- 19. 刪除wpf超鏈接時
- 20. WPF:製表導航折斷超鏈接
- 21. 如何點擊超鏈接打開打印預覽頁面?
- 22. 點擊鏈接打開表格,並選擇一個值
- 23. WPF網格檢測點擊
- 24. MS Access 2016報告包含超鏈接路徑。點擊事件VBA打開特定超鏈接點擊
- 25. WPF:從網格到表單的鏈接
- 26. 通過點擊超鏈接打開彈出窗口asp.net(C#)
- 27. 通過點擊超鏈接打開文件不起作用
- 28. 如何打開電子郵件超鏈接點擊展望
- 29. install4j - 點擊超鏈接,網頁瀏覽器不打開
- 30. Blender通過點擊對象打開超鏈接