2011-05-02 46 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