WPF,创建一个Hyperlink并加入到RichTextBox内,光标样式不能改变且点击时不能直接打开文件夹?该如何处理
WPF,创建一个Hyperlink并加入到RichTextBox内,光标样式不能改变且点击时不能直接打开文件夹?
WPF,程序使用new创建一个Hyperlink 并将其加入RichTextBox内,设置MouseEnter时的光标样式,当点击Hyperlink 时打开对应的文件夹。现在碰的问题是(1)为什么不能改变光标样式(代码的MouseEnter事件);(2)直接点击Hyperlink时为什么打不开链接,而必须按下Ctrl键再点击才能打开链接?
//输入:fileFullPath--HyperLink对应的文件地址
void AddHyperLink(string fileFullPath)
{
Paragraph pParagrahp = new Paragraph();
CGlobalPara.g_logTextBox.Document.Blocks.Add(pParagrahp);//g_logTextBox为RichTextBox控件
//添加超链接
Run pLinkRun = new Run(fileFullPath);
Hyperlink pHyperlink = new Hyperlink(pLinkRun);
pHyperlink.NavigateUri = new Uri(fileFullPath, UriKind.RelativeOrAbsolute);
pHyperlink.Click += Hyperlink_Click;
pHyperlink.MouseEnter += Hyperlink_MouseEnter;
pParagrahp.Inlines.Add(pHyperlink);
fmeCruise.CGlobalPara.g_logTextBox.ScrollToEnd();
}
//当光标进入Hyperlink时,改变Hyperlink光标样式(为什么此处的光标样式不能改变)
void Hyperlink_MouseEnter(object sender, System.Windows.Input.MouseEventArgs e)
{
Hyperlink pH = sender as Hyperlink;
pH.Cursor = System.Windows.Input.Cursors.Hand;
}
//点击链接时,打开文件夹
//直接点击Hyperlink时为什么打不开链接,而必须按下Ctrl键再点击才能打开链接?
void Hyperlink_Click(object sender, RoutedEventArgs e)
{
Hyperlink pH = sender as Hyperlink;
try
{
System.Diagnostics.Process.Start(pH.NavigateUri.AbsolutePath.ToString());
}
catch
{
e.Handled = true;
}
}

------解决思路----------------------
1、先设置ph.ForceCursor = true;
------解决思路----------------------

Reset 一下不就行了。 仔细找属性 可以找到的。
WPF,程序使用new创建一个Hyperlink 并将其加入RichTextBox内,设置MouseEnter时的光标样式,当点击Hyperlink 时打开对应的文件夹。现在碰的问题是(1)为什么不能改变光标样式(代码的MouseEnter事件);(2)直接点击Hyperlink时为什么打不开链接,而必须按下Ctrl键再点击才能打开链接?
//输入:fileFullPath--HyperLink对应的文件地址
void AddHyperLink(string fileFullPath)
{
Paragraph pParagrahp = new Paragraph();
CGlobalPara.g_logTextBox.Document.Blocks.Add(pParagrahp);//g_logTextBox为RichTextBox控件
//添加超链接
Run pLinkRun = new Run(fileFullPath);
Hyperlink pHyperlink = new Hyperlink(pLinkRun);
pHyperlink.NavigateUri = new Uri(fileFullPath, UriKind.RelativeOrAbsolute);
pHyperlink.Click += Hyperlink_Click;
pHyperlink.MouseEnter += Hyperlink_MouseEnter;
pParagrahp.Inlines.Add(pHyperlink);
fmeCruise.CGlobalPara.g_logTextBox.ScrollToEnd();
}
//当光标进入Hyperlink时,改变Hyperlink光标样式(为什么此处的光标样式不能改变)
void Hyperlink_MouseEnter(object sender, System.Windows.Input.MouseEventArgs e)
{
Hyperlink pH = sender as Hyperlink;
pH.Cursor = System.Windows.Input.Cursors.Hand;
}
//点击链接时,打开文件夹
//直接点击Hyperlink时为什么打不开链接,而必须按下Ctrl键再点击才能打开链接?
void Hyperlink_Click(object sender, RoutedEventArgs e)
{
Hyperlink pH = sender as Hyperlink;
try
{
System.Diagnostics.Process.Start(pH.NavigateUri.AbsolutePath.ToString());
}
catch
{
e.Handled = true;
}
}
------解决思路----------------------
1、先设置ph.ForceCursor = true;
------解决思路----------------------
Reset 一下不就行了。 仔细找属性 可以找到的。