locked
xaml文件到xaml文件之间的跳转,难道实现起来真的很难吗??? RRS feed

  • 问题

  • google了半天都是查到xaml文件如何跳转到aspx文件的方法,我先实现两个xaml文件的跳转。

    今天请教了一位朋友,他的方法是可行的,有两个xaml文件:
    一,child001.xaml
    二,child002.xaml

    方法很简单,在child001.xaml.cs里写代码  this.Content = new child002(); 就实现了。

    可是这个也许会有问题:
    一,前一个xaml页面未释放掉,会不会如果跳转很多的话,很占内存呀。
          目前还不知道怎么释放掉前一个xaml。
    二,如果两个xaml里的UserControl尺寸不同,会出现问题,如果001、002反复跳转的话
          可视界面会越来越小。

    ————————————————————————————————————————

    另外一个朋友告诉我另外一个办法,例如有三个xaml文件:
    一,parentXaml.xaml
    二,child001.xaml
    三,child002.xaml

    在parentXaml.xaml先加载child001.xaml,都是基于parentXaml.xaml。
    可是他说跳转代码只能在parentXaml.xaml.cs文件里。
    也就是说无法把跳转代码放在child001.xaml.cs(有高人知道怎么把跳转代码放在child001.xaml.cs里吗)

    这个方法虽然不耗费内存,但不能达到效果。

    ————————————————————————————————————

    有朋友知道其他跳转方式吗,或者是讨论下前两种跳转方法,十分感谢







    视别人的帮助为恩赐~
    2009年5月12日 9:15

答案

  • google了半天都是查到xaml文件如何跳转到aspx文件的方法,我先实现两个xaml文件的跳转。

    今天请教了一位朋友,他的方法是可行的,有两个xaml文件:
    一,child001.xaml
    二,child002.xaml

    方法很简单,在child001.xaml.cs里写代码  this.Content = new child002(); 就实现了。

    可是这个也许会有问题:
    一,前一个xaml页面未释放掉,会不会如果跳转很多的话,很占内存呀。
          目前还不知道怎么释放掉前一个xaml。
    二,如果两个xaml里的UserControl尺寸不同,会出现问题,如果001、002反复跳转的话
          可视界面会越来越小。

    ————————————————————————————————————————

    另外一个朋友告诉我另外一个办法,例如有三个xaml文件:
    一,parentXaml.xaml
    二,child001.xaml
    三,child002.xaml

    在parentXaml.xaml先加载child001.xaml,都是基于parentXaml.xaml。
    可是他说跳转代码只能在parentXaml.xaml.cs文件里。
    也就是说无法把跳转代码放在child001.xaml.cs(有高人知道怎么把跳转代码放在child001.xaml.cs里吗)

    这个方法虽然不耗费内存,但不能达到效果。

    ————————————————————————————————————

    有朋友知道其他跳转方式吗,或者是讨论下前两种跳转方法,十分感谢






    视别人的帮助为恩赐~

    另外,如果你想在浏览器上的XAML导航,可以直接使用Silverlight3的XAML导航特性,呵呵

    My blog: http://blog.csdn.net/dotfun http://dotfun.cnblogs.com

    My contact: QQ:372900288 E-mail:372900288@qq.com msn:sellnet007@hotmail.com

    • 已标记为答案 woodynet 2009年5月14日 1:48
    2009年5月12日 9:50

全部回复

  •       XAML页面都是通过Applicatioin实例的RootVisual属性来指定的,我们在当前的XAML页的逻辑代码中虽然也可以引用Application实例,但是如果当前页是通过 RootVisual=new child002() 的形式来指定给Silverlight插件的,你就不可能在当前XAML页面逻辑上通过改变RootVisual属性值的方式来把当前页替换为其他XAML页。
         变通的办法是在App档的Application的startup事件handler中把一个可以作容器用的XAML对象指定给RootVisual,那么我们就可以在当前的那个XAML页面的逻辑中通过改变作为XAML页容器的那个XAML对象的子对象的方式来把其他XAML页来替换掉当前XAML页。

    My blog: http://blog.csdn.net/dotfun http://dotfun.cnblogs.com

    My contact: QQ:372900288 E-mail:372900288@qq.com msn:sellnet007@hotmail.com

    2009年5月12日 9:49
  • google了半天都是查到xaml文件如何跳转到aspx文件的方法,我先实现两个xaml文件的跳转。

    今天请教了一位朋友,他的方法是可行的,有两个xaml文件:
    一,child001.xaml
    二,child002.xaml

    方法很简单,在child001.xaml.cs里写代码  this.Content = new child002(); 就实现了。

    可是这个也许会有问题:
    一,前一个xaml页面未释放掉,会不会如果跳转很多的话,很占内存呀。
          目前还不知道怎么释放掉前一个xaml。
    二,如果两个xaml里的UserControl尺寸不同,会出现问题,如果001、002反复跳转的话
          可视界面会越来越小。

    ————————————————————————————————————————

    另外一个朋友告诉我另外一个办法,例如有三个xaml文件:
    一,parentXaml.xaml
    二,child001.xaml
    三,child002.xaml

    在parentXaml.xaml先加载child001.xaml,都是基于parentXaml.xaml。
    可是他说跳转代码只能在parentXaml.xaml.cs文件里。
    也就是说无法把跳转代码放在child001.xaml.cs(有高人知道怎么把跳转代码放在child001.xaml.cs里吗)

    这个方法虽然不耗费内存,但不能达到效果。

    ————————————————————————————————————

    有朋友知道其他跳转方式吗,或者是讨论下前两种跳转方法,十分感谢






    视别人的帮助为恩赐~

    另外,如果你想在浏览器上的XAML导航,可以直接使用Silverlight3的XAML导航特性,呵呵

    My blog: http://blog.csdn.net/dotfun http://dotfun.cnblogs.com

    My contact: QQ:372900288 E-mail:372900288@qq.com msn:sellnet007@hotmail.com

    • 已标记为答案 woodynet 2009年5月14日 1:48
    2009年5月12日 9:50