Silverlight2.0中做了两个xaml,怎么相互调用?

俗人1979 2008-03-13 10:35:11
Silverlight2.0+vs2008中做了两个xaml,分别为AAA.xaml和BBB.xaml,都在一个命名空间下,类名就是“AAA”和“BBB”,在AAA上放了个按钮,我想在AAA的按钮事件中把BBB给“Show”出来,用了以下的语句
private void Btn_Msg_Click(object sender, RoutedEventArgs e)
{
BBB b = new BBB();
b.Visibility = Visibility.Visible;
}
但是执行了没有反应,也不报错什么的,有高手知道怎么弄吗,有例子下载最好!
...全文
584 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
shinewill 2008-04-15
  • 打赏
  • 举报
回复

在你需要调用另一个XAML文件的XAML文件的<UserControl >里增加上这个属性
xmlns:XXX ="clr-namespace:Silverlight_sample"
一般里面有这个属性,没关系,你可以增加一个,不会冲突。
Silverlight_sample 是你自己的Silverlight项目的名字,
这个属性是相当与将你自己的项目作为一个新的名空间加入到当前的应用中来,
然后你就就可以用<XXX:BBB></XXX:BBB>这个控件了。
到时也就可以用编程方法来动态的控制它的显示或隐藏了。
呵呵,希望对你有用!
如果有用,请给分。
coolbel2000 2008-04-08
  • 打赏
  • 举报
回复
是的,要作为用户控件引用进来的,然后就可以在后代码控制什么时候SHOW出来了.
Shiro8558 2008-04-02
  • 打赏
  • 举报
回复
mark



1.0js这样用过 downloader 和 CreateFromXamlDownloader

LoadUI:function(sender,e){
var downloader=this.plugIn.createObject("downloader");
downloader.addEventListener("Completed",Silverlight.createDelegate(this,this.onUILoaded));
downloader.open("GET", "UI.xaml");
downloader.send();
},

onUILoaded:function(sender,e){
/*
var xamlFragment = sender.ResponseText;
alert(sender.ResponseText);
var content=this.plugIn.content.createFromXaml(xamlFragment);
this.MyPanel.children.add(content);
*/

var content=this.plugIn.content.CreateFromXamlDownloader(sender,"");
this.MyPanel.children.add(content);
}
jimodushi 2008-04-01
  • 打赏
  • 举报
回复
昨天想了一晚上,今天终于解决了。
========================================

其实思考的方向应该跟以前的一样.
C#中的AUserControl调用另一个BUserControl的时候只用把要调用的BUserControl拖动到AUserControl里,
通过观察可以发现在AUserControl的头部会加上对BUserControl的引用程序集,然后才能调用BUserControl.
所以Silverlight2.0中的xaml文件相互调用同上面说的一样。在调用之前需要在头部的UserControl中添加
对要调用的xaml文件的引用程序集。
比如有A.xaml和B.xaml两个文件,并且同在一个Hellow World层。
在A.xaml中调用B.xaml
A.xaml中的代码为:

<UserControl xmlns:Data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data" x:Class="Hellow_World.Page"
xmlns="http://schemas.microsoft.com/client/2007"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Data="clr-namespace:Hellow_World">
<Data:B x:Name="DetailsView" Grid.RowSpan="2" Visibility="Collapsed"/>
</UserControl>

蓝色就是调用调用B.xaml时要添加的代码。

jimodushi 2008-03-31
  • 打赏
  • 举报
回复
高手人列!
弄了一下午都没弄出来.
jimodushi 2008-03-31
  • 打赏
  • 举报
回复
这里所有的回答中都没能说明如何实现2个xaml文件的相互调用,所以借LZ的帖子再一次问同样的问题.
希望高手能帮帮小弟,小弟才开始学Silverlight2.0.
================================================

ourmessage 2008-03-17
  • 打赏
  • 举报
回复
http://blog.csdn.net/ourmessage/archive/2008/03/12/2172431.aspx

用这个方法就可以两个页面跳啦!呵呵!
不好意思,来迟了!
你去试试吧!加油!
star65225692 2008-03-14
  • 打赏
  • 举报
回复
新开论坛:http://www.netcsharp.cn/,有不少技术文章,欢迎各位光临,同时介绍下相关QQ群:
1.NET技术研究中心:31647020

欢迎各位加入~
俗人1979 2008-03-14
  • 打赏
  • 举报
回复
难道就没有人知道吗?郁闷了,好歹有人来踩一下也好啊
俗人1979 2008-03-13
  • 打赏
  • 举报
回复
居然没有人知道吗?

8,757

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧