Silverlight NavigationService 始终为空

2024-01-09

我读到有些人遇到了这个问题,所以我想发布一个我在尝试处理这个问题时想到的(有点)优雅的解决方案。问题是当您在 Silverlight 中创建模板化页面时,ContentControls 没有父 Frame 的 NavigationService(当您尝试使用它时它始终为 null)。也有类似的场景,其中 NavigationService 存在于智能中,但始终为空。要启用站点范围的导航:

  1. 创建一个新的UserControl(我将我的称为“NavFrame”),其中有一个导航框架(我将我的称为“RootFrame”)。

  2. 在此框架内您可以设置任何您喜欢的内容。

  3. 将此 UserControl 设置为您的RootVisual在 App.xaml.cs 中(即this.RootVisual = new NavFrame();).

  4. 要在任何页面中使用 NavigationService,您可以键入以下内容:

    ((NavFrame)App.Current.RootVisual).RootFrame.NavigationService
        .Navigate(new Uri("Your Uri", UriKind.RelativeOrAbsolute));
    

您可以创建一个操作并将其拖动到要进行导航的控件顶部,就像这样:

public class NavigateAction : TriggerAction<DependencyObject>
{
    public Uri Uri
    {
        get;
        set;
    }

    protected override void Invoke(object parameter)
    {
        var frame = FindContainingFrame(AssociatedObject);

        if(frame == null)
            throw new InvalidOperationException("Could not find the containing Frame in the visual tree.");

        frame.Navigate(Uri);
    }

    protected static Frame FindContainingFrame(DependencyObject associatedObject)
    {
        var current = associatedObject;

        while(!(current is Frame))
        {
            current = VisualTreeHelper.GetParent(current);

            if(current == null)
                return null;
        }

        return (Frame)current;
    }
}

现在您只需将其拖动并将其连接到目标页面即可。顺便说一句,SL4 是这样,从未在 SL3 上尝试过。并且 URI 确实以以下形式工作:“/SilverlightApplication1;组件/Page1.xaml" 或使用框架上的 UriMapping。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Silverlight NavigationService 始终为空 的相关文章

  • Silverlight:加密Web服务的用户名和密码

    加密不是我的强项 我正在 Silverlight 3 中编写一个应用程序 它与 Web 服务通信以对用户进行身份验证 Web 服务不一定在 SSL 下托管 我正在尝试找到一种在传递用户名和密码之前对其进行可逆加密的方法 该方法不依赖于将密钥
  • Silverlight/WPF 按钮上的 MouseOver 样式

    努力为鼠标悬停的按钮设置样式 我已经成功地设置了按钮的样式 纯红色 但我希望每当鼠标悬停时它都会更改为纯黑色 我是 XAML 新手 我可以看到它需要某种类型的故事板 动画 不确定具体如何执行此操作 任何帮助将不胜感激 这与 WPF 和 Si
  • 在 Xamarin.Forms 上的图像顶部叠加标签、列表和按钮

    我想制作一个页面 其中有一张图片 基本上页面上的其他所有内容都位于图像之上 与此类似的东西 XAML 代码如下
  • 绑定为资源

    我可以定义一个Binding as a Resource然后用不同的方式重复使用它Controls特性 Example Binding
  • 隐藏 AppBar 中的省略号

    当您在 UWP 应用中创建 AppBar 或 CommandBar 时 控件侧面附近总会隐藏一个省略号 如下所示 我不想在我的应用程序中使用它 但我没有在其中找到任何方法 属性AppBar这会帮助我摆脱它 这应该是可能的 因为许多默认的 W
  • 当未附加到调试器时,样式 TargetType 会导致 XamlParseException

    我有一组非常简单的样式 正在几个不同的 WPF 应用程序中使用 我将此样式存储在公共项目的 Xaml 文件中 然后通过合并到Resources in App xaml在每个项目中
  • WPF XAML 网格可见性触发器

    我的网格第一行有一条状态消息 我希望它在可见性发生变化时滑入和滑出 第一个可见性触发器效果很好 可以快速打开第一个网格行 一旦我添加 折叠 触发器 就什么都不起作用了 当可见性设置为折叠时 如何反转动画以滑动关闭
  • XAML 中的“{x:Static}”是什么意思?

    什么是 x Static 在 XAML 中是什么意思 代码示例
  • 在 WPF 中,x:Name 和 Name 属性之间有什么区别?

    有时似乎Name and x Name属性是可以互换的 那么 它们之间的明确区别是什么 什么时候更适合使用其中一种呢 以错误的方式使用它们是否会对性能或内存产生影响 XAML 中确实只有一个名称 即x Name 框架 例如 WPF 可以选择
  • PowerShell,如何在现有浏览器选项卡中打开 URL?

    我想制作一个 powershell 脚本 它将 运行 Chrome 打开 google com 网站 停留一段时间 在同一选项卡中从 google com gt bing com 转到 这就是适合我的代码 它运行 Chrome 并在选项卡中
  • xaml.cs 文件上的 InitializeComponent() 出现错误

    有时我会收到一个红色错误 内容如下 InitializeComponent 在当前上下文中不存在 以及我的其他变量 xaml受约束的x Name The x ClassXaml 文件中的名称空间和类名确实对应于我的xaml cs file
  • 如何使用 androidX 不破坏片段

    现在 我尝试 androidX 导航和底部导航栏 当我像下面一样使用它时 supportFragmentManager getSupportFragmentManager navHostFragment NavHostFragment su
  • 如何在后面的代码中访问 C# Metro UI 中数据模板内的控件

    我有一个位于 Flipview 数据模板内的 MediaElement 我想在后面的代码中访问名为 video 的 MediaElement 以便我可以通过按钮分配播放 暂停等属性 这是我想做的代码
  • 如何在c# wpf中获取元素的标签?

    我正在尝试使用 WPF 构建一个 GUI 在其中我可以绘制一些基本形状并将它们存储到 xml 文件中 形状是在 xaml 文件中设计的 我为每个形状添加了标签 现在我想在代码中获取它们的标签值 并将其作为属性存储在输出 xml 文件中 例如
  • WPF 中的数据绑定?

    我正在尝试在 WPF 中设置数据绑定 我有班级人员 它通过一个文本框进行更新 类似老式的 另一个文本框应该通过数据绑定镜像对人员对象的更改 它曾经是 type twoway 但抛出了xamlparse 异常 它不是这样工作的 点击显示 pe
  • 如何在不监听框架控件中定义的任何鼠标事件的情况下检测鼠标单击?

    是否可以在不侦听框架控件中定义的任何鼠标事件的情况下检测鼠标单击 我的意思是 我不想编写如下代码 control MouseLeftButtonDown this HandleMouseLeftButtonDown 但我想知道用户是否点击屏
  • 如何在Xamarin.Forms中将多个页面的BindingContext设置为同一个ViewModel?

    我是 Xamarin Forms 新手 我想使用 MVVM 模式和 XAML 创建一个跨平台应用程序 在我的表单项目 pcl 中 我想设置绑定上下文 of my MainPage以及将来的多个页面到同一个 ViewModel 这可能吗 让我
  • XAML解析异常

    我有一个简单的 XAML 页面 当它作为 Visual Studio 中任何应用程序的一部分加载时 加载效果良好 但是 当我使用 ClickOnce 部署此应用程序时 出现以下异常 Type System Windows Markup Xa
  • Google 使用折线和标记绘制地图性能

    我们正处于决策点 哪种技术将用于我们的高负载航班优惠地图 有一个简单的测试 http buruki com gmap http buruki com gmap但如果我选择伦敦或莫斯科 他们有约 200 300 个航班目的地 大多数浏览器 当
  • 滚动 X 轴绘图区域 - Silverlight 柱系列

    我有一个工作正常的柱形系列图表 我有一个需要添加的功能 我希望水平滚动能够启用到 x 轴的绘图区域 这是屏幕截图 如果您看到屏幕截图 我有 6 个项目 并且由于项目数量较多 条形图非常细 所以假设如果我有 20 个项目 那么条形图将根本不可

随机推荐

  • docker jboss7 战争提交。服务器启动失败且无法恢复

    有没有办法将 war 文件部署到在 docker 容器内运行的 Jboss as7 中 因为我的 jboss 服务器在 docker 提交后似乎失败了 Could not rename usr local share jboss stand
  • Keycloak + Kerberos 身份验证:机制级别:无效参数 (400) - 无法找到适当类型的密钥来解密 AP REP - 使用 HMAC 的 RC4

    我有以下内容 JBoss EAP 7 2 2 上的 Spring Web 应用程序 Machine CentOs CentO 上的 Keycloak 3 3 4 活动目录 我们在 OpenJDK 8 上运行 用户使用其 Active Dir
  • CG 3.0会泄露吗?

    我发现 CG 似乎存在内存泄漏 我通过 nvidia com 提交了一份报告 但如果您尝试这样做here http will sherif appspot com html d3d11 DirectWrite html 如果你删除那行 cg
  • 语法错误:编译 ejs 时参数列表后缺少 )

    编译 ejs 时 我收到错误 参数列表后缺少 我尝试了很多次 但找不到问题所在 这是导致错误的 ejs 这段代码有什么问题 h2 class page title Products h2 br a href admin products a
  • WPF Ribbon - 隐藏快速访问工具栏

    如何在 WPF 功能区中隐藏快速访问工具栏 For 您可以使用隐藏它VisualTreeHelper 上Loaded事件处理程序 只需将包含快速访问工具栏的行大小调整为 0 private void RibbonLoaded object
  • 安卓L | libusb_init 返回 LIBUSB_ERROR_OTHER (-99)

    我尝试使用libusb在未 root 的 Nexus 5 上 如建议的那样这种方法 https stackoverflow com a 24243605 902217 通过将 USB 文件描述符从 java 传输到本机端 我的应用程序通过以
  • 将空图添加到ggplot2中的facet_wrap

    我正在尝试创建 3 个图 其中所有面板应具有相同的大小 所以我认为解决方案可能是facet wrap 我的问题是 我不希望每个图表中有相同数量的图表 df lt data frame group c 1 1 2 2 2 3 3 name c
  • 在树枝模板中设置多维数组中单个对象的值

    对于项目需要 我需要在渲染之前更改一些表单字段数据 为此 我迭代表单元素并动态更改我需要的值 问题是我无法改变价值 我收到这个错误 Unexpected token punctuation of value end of statement
  • Emacs 搜索和替换的好教程 + 参考吗? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 对于 Emacs 的新用户来说 有什么好的教程 参考来学习和熟悉 Emacs 的搜索 替换和正则表达式功能吗 In Emacs press
  • 动态生成的 Perl Moose 访问器

    请参阅以下基于 Moose 的 Perl 代码片段 BusinessClass gt meta gt add attribute Key gt is gt rorw isa gt MooseType lazy gt 0 required g
  • C语言中如何连接两个整数

    Stack Overflow 用许多其他语言回答了这个问题 但没有用 C 语言回答 所以我想我会问 因为我有同样的问题 C语言中如何连接两个整数 Example x 11 y 11 我想要 z 如下 z 1111 其他示例尝试使用字符串来执
  • N层架构中如何维护事务

    我正在 N 层架构中开发应用程序 众所周知 我们需要在插入 更新 删除操作时实现事务 请告诉我如何在 N 层架构的 c net 中使用事务 我的架构是这样的 Applicationform gt middle Layre gt Factor
  • simple_form 带有自定义包装器的自定义输入

    我正在尝试在我的应用程序中为货币进行自定义输入 我有那些 bootstrap 包装器等 我认为它带有 simple form 或 bootstrap gem 所以 我可以做类似的事情 它的工作原理正如预期的那样 问题是 我在很多地方都需要同
  • 登录框架

    想象一下有一个框架提供了一个名为logutils set up 它根据某些配置设置日志记录 应尽早设置日志记录 因为导入库期间发出的警告不应丢失 由于旧方法 if name main 看起来很难看 我们使用控制台脚本入口点来注册main m
  • 添加一些内容后的 VB.Net 双重比较

    在向双变量添加一些值后 我遇到了一个奇怪的情况 当将 0 2 多次添加到双精度变量时会出现问题 我认为这只发生在 0 2 例如 考虑以下代码 Dim i As Double 2 i i 0 2 MsgBox i 2 2 MsgBox i g
  • VS2010添加新文件抛出设置属性'System.Windows.ResourceDictionary.DeferrableContent'抛出异常

    在 Visual Studio 2010 中 当我右键单击一个项目并选择 添加新项目 时 光标闪烁一秒钟 但没有任何反应 如果我去文件 gt 新建 gt 文件 我得到 设置属性 System Windows ResourceDictiona
  • IgnoreReadOnlyRecommended 打开 Excel 工作簿时无法从 Python 运行

    我有一个 Excel 工作簿 需要以可写模式从 python 打开 工作簿设置为提示只读推荐 https support office com en us article Prompt to open a Microsoft Office
  • 条码扫描仪读取代码速度太慢

    我使用 codenameone codescanner 库来读取条形码 它使用第三方扫描仪 如果单独使用 则可以正常工作并且可以快速读取条形码 但是使用codenameone应用程序 同样的扫描仪速度太慢 大多数时候无法扫描 我已经在三星设
  • 使用 iTextSharp 在 PdfPCell 中自动调整图像大小

    我在 iTextSharp 库中的图像遇到一个奇怪的问题 我将图像添加到 PdfPCell 中 由于某种原因它被放大了 我怎样才能保持原来的大小 我虽然打印时图像是相同的 但图片上的差异在打印版本上是相同的 必须使用 ScaleXXX 手动
  • Silverlight NavigationService 始终为空

    我读到有些人遇到了这个问题 所以我想发布一个我在尝试处理这个问题时想到的 有点 优雅的解决方案 问题是当您在 Silverlight 中创建模板化页面时 ContentControls 没有父 Frame 的 NavigationServi