【发布时间】:2009-11-05 18:51:32
【问题描述】:
我在一个应用程序中有一个 WPF 框架控件,用于加载服务器上尚不存在的页面的预览。
因为它不存在,并且因为它在我的应用程序中,所以我需要找到一种方法来理想地禁用超链接,这样它们就不能被点击。虽然,强制它在新窗口中加载以使其不再出现在我的应用程序中是一种可接受的解决方法。
不幸的是,在这种情况下,无法选择与 HTML 混为一谈。
鉴于幕后是 IE,这可能吗?
【问题讨论】:
我在一个应用程序中有一个 WPF 框架控件,用于加载服务器上尚不存在的页面的预览。
因为它不存在,并且因为它在我的应用程序中,所以我需要找到一种方法来理想地禁用超链接,这样它们就不能被点击。虽然,强制它在新窗口中加载以使其不再出现在我的应用程序中是一种可接受的解决方法。
不幸的是,在这种情况下,无法选择与 HTML 混为一谈。
鉴于幕后是 IE,这可能吗?
【问题讨论】:
您应该能够挂钩the Frame::Navigating event,然后将the NavigatingCancelEventArgs::Cancel property 设置为true。
【讨论】:
诚然,我不完全理解您要做什么,但我之前通过在正确的事件中设置 e.Handled = true; 来禁用用户在 WPF 中单击控件的能力。
试试鼠标向下。
private void ContentControl_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
e.Handled = true;
}
【讨论】:
使用 System.Windows.Control.WebBrowser 并在“导航”事件中将初始设置为 true 的全局布尔变量变为 false(在窗口“加载”事件中)。
如果您希望阻止链接,请在 System.Windows.Controls.WebBrowser 导航事件中检查此布尔变量并将 e.cancel 设置为 true。可以使用其他控件来将此全局布尔变量的值更改为 true 并启用导航。
【讨论】: