2011-05-02 27 views
0

Test.aspx的页面:Silverlight的按钮(用XAML和C#)

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Test.aspx.cs" Inherits="XMLPraktijkOpdrachtJavascript.Test" %> 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml" > 
    <head> 
     <title>Test</title> 
     <script type="text/javascript" src="Javascript/Test.js"></script> 
    </head> 
    <body> 
     <object id="TestPage" width="100%" height="100%" type="application/x-silverlight-2">     
      <param name="source" value="Xaml/Test.xaml"/>    
     </object>     
    </body> 
</html> 

Test.xaml页:

<?xml version="1.0" encoding="UTF-8"?> 
<Grid 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 

    Loaded="onLoaded"> 

    <Button Width="50" Height="50" Name="Test">TEST</Button> 

</Grid> 

Test.js文件:

// Event function when page gets loaded 
function onLoaded() { 
    alert('In TestPage'); 
} 

没有按钮,它工作正常。用按钮,它失败。为什么我不能在Silverlight中使用按钮? System.Windows.Controls被添加到项目中。

+0

你已经做出了一个明智的选择,使用旧的Javascript API而不是构建完整的Silverlight Xap? “它失败”对我们诊断您的问题并不是非常有用,请添加更多详细信息。 – AnthonyWJones 2011-05-02 11:11:33

回答

3

阅读a very similar question you've asked before后,我不确定您是否理解Silverlight 1和Silverlight 2或更高版本之间的根本区别。

您的<object>元素具有属性type="application/silverlight-2",该属性指定Silverlight 2或更高版本。但source参数指定.xaml文件,我相信这是Silverlight 1的工作原理。

Silverlight 2及更高版本要求在单独的项目中开发Silverlight代码。这些Silverlight项目将所有Silverlight代码编译为.xap文件。然后,将Silverlight应用程序添加到您的Web项目中,该项目将编译的.xap文件复制到您的Web项目中的ClientBin文件夹中。然后,您可以让您的Web项目向您的浏览器提供.xap文件。使用Silverlight 1,看起来.xaml文件是从您的Web项目中提供的。

您的项目是否为Silverlight 1项目?如果它是现有的应用程序,是否有机会将其迁移到更高版本?如果你一直在维护一个大型的Silverlight 1应用程序,我只能说我真的很抱歉。

没有任何理由再写新的Silverlight 1应用程序。它与Silverlight的其他版本有着根本的不同,它有很多限制。特别是,在Silverlight 1中没有Button,因为有人已经在您对上一个问题的评论中向您指出了这一点。这很可能是你所看到的错误的原因。

+0

我想老师怪老师。我们必须使用xaml文件,他只提供很少的关于谁和为什么的信息。 – Matthias 2011-05-02 11:05:41

+0

@Matthias:坦率地说,我很震惊你被要求学习Silverlight 1。学习它绝对没有价值,因为它已经过时了。学校和大学真的不应该再教它了。如果你的老师不会改变主意,向上级投诉。 – 2011-05-02 11:18:32

+0

我们学校倾向于教我们过时的技术......无论如何,谢谢你的回答。 – Matthias 2011-05-02 11:54:18

2

你不能只使用这样的“xaml文件”。你需要一个“silverlight项目”来输出一个你可以嵌入到你的网页中的xap文件。

尝试创建一个Silverlight应用程序,这将创建silverilght项目,及时为您创造一个Web应用程序,配置Web应用程序,以显示Silverlight项目,并让您能更快速地运行;)

希望这有助于

+0

恐怕这是不可能的。这是一个学校作业,我们必须使用给定的模板项目。 (Visual Studio 2010) – Matthias 2011-05-02 10:43:26

+0

不能将Silverlight项目添加到您的解决方案吗? – AbdouMoumen 2011-05-02 10:46:39

+0

然后,我仍然可以使用javascript作为我的onload和onmousedown事件的代码吗? – Matthias 2011-05-02 10:54:57