ASPX页面
<%@ Page Language="C#" AutoEventWireup="true" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>SLBigOrSmall</title>
<style type="text/css">
html, body {
height: 100%;
overflow: auto;
}
body {
padding: 0;
margin: 0;
}
#silverlightControlHost {
height: 100%;
text-align:center;
}
</style>
<script type="text/javascript" src="Silverlight.js"></script>
<script type="text/javascript">
function onSilverlightError(sender, args) {
var appSource = "";
if (sender != null && sender != 0) {
appSource = sender.getHost().Source;
}
var errorType = args.ErrorType;
var iErrorCode = args.ErrorCode; if (errorType == "ImageError" || errorType == "MediaError") {
return;
} var errMsg = "Silverlight 应用程序中未处理的错误 " + appSource + "\n" ; errMsg += "代码: "+ iErrorCode + " \n";
errMsg += "类别: " + errorType + " \n";
errMsg += "消息: " + args.ErrorMessage + " \n"; if (errorType == "ParserError") {
errMsg += "文件: " + args.xamlFile + " \n";
errMsg += "行: " + args.lineNumber + " \n";
errMsg += "位置: " + args.charPosition + " \n";
}
else if (errorType == "RuntimeError") {
if (args.lineNumber != 0) {
errMsg += "行: " + args.lineNumber + " \n";
errMsg += "位置: " + args.charPosition + " \n";
}
errMsg += "方法名称: " + args.methodName + " \n";
} 引发新错误(errMsg);
}
</script>
</head>
<body>
<form id="form1" runat="server" style="height:100%">
<div style=" text-align:center;">
请选择:<select id="selectColor" >
<option value="White">白色</option>
<option value="Gray">灰色</option>
<option value="Black">黑色</option>
</select>
<input id="Text1" type="text" />
</div>
问题一:“select”和“input”这两个元素存在, 但是在项目启动后,网页中却看不见。 <div id="silverlightControlHost">
<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="650px" height="600px">
<param name="source" value="ClientBin/SLBigOrSmall.xap"/>
<param name="onError" value="onSilverlightError" />
<param name="background" value="white" />
<param name="minRuntimeVersion" value="4.0.50826.0" />
<param name="autoUpgrade" value="true" />
<a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0" style="text-decoration:none">
<img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="获取 Microsoft Silverlight" style="border-style:none"/>
</a>
</object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div>
</form>
</body>
</html>
MainPage.xaml.cs后台代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Windows.Browser;namespace SLBigOrSmall
{
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
HtmlLinkSL();
} #region 放大缩小元素 private void LayoutRoot_MouseWheel(object sender, MouseWheelEventArgs e)
{
// e.Delta滚动一个齿轮为120,向前为正,向后为负所以120/1200,让增量变到正负0.1
double delta = e.Delta / 1200.0;
canvasTrans.ScaleX += delta;
canvasTrans.ScaleY += delta;
} #endregion #region Html操作Silverlight元素 private void HtmlLinkSL()
{
//获取到页面上的selectColor的Html控件
HtmlElement htmlSelectColor = HtmlPage.Document.GetElementById("selectColor");
//为这个Html控件增加onchange选择变化事件htmlSelectColor.AttachEvent("onchange", new EventHandler<HtmlEventArgs>(htmlSelectColor_onChange));
问题二:发生“未将对象引用设置到对象的实例。”,可是“selectColor”这个元素在aspx页面中是存在的。就在上面标注的位置。 }
public void htmlSelectColor_onChange(object sender, HtmlEventArgs e)
{
HtmlElement htmlSelect=sender as HtmlElement;
//获取到html控件选择的值,根据这个值为Html
switch(htmlSelect.GetAttribute("value"))
{
case "White":
ellipse1.Fill = new SolidColorBrush(Colors.White);
break;
case "Gray":
ellipse1.Fill = new SolidColorBrush(Colors.Gray);
break;
case "Black":
ellipse1.Fill = new SolidColorBrush(Colors.Black);
break;
default:
break;
}
} #endregion
#region Silverlight操作Html元素 private void Button_Click(object sender, RoutedEventArgs e)
{
HtmlElement htmlElem = HtmlPage.Document.GetElementById("Text1");
问题三:发生“未将对象引用设置到对象的实例。”,可是“Text1”这个元素在aspx页面中是存在的。就在上面标注的位置。 htmlElem.SetAttribute("value", "Silverlight操作成功Html"); }
#endregion
}
}开发运行环境是:VS2010SP1,SL4...
<%@ Page Language="C#" AutoEventWireup="true" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>SLBigOrSmall</title>
<style type="text/css">
html, body {
height: 100%;
overflow: auto;
}
body {
padding: 0;
margin: 0;
}
#silverlightControlHost {
height: 100%;
text-align:center;
}
</style>
<script type="text/javascript" src="Silverlight.js"></script>
<script type="text/javascript">
function onSilverlightError(sender, args) {
var appSource = "";
if (sender != null && sender != 0) {
appSource = sender.getHost().Source;
}
var errorType = args.ErrorType;
var iErrorCode = args.ErrorCode; if (errorType == "ImageError" || errorType == "MediaError") {
return;
} var errMsg = "Silverlight 应用程序中未处理的错误 " + appSource + "\n" ; errMsg += "代码: "+ iErrorCode + " \n";
errMsg += "类别: " + errorType + " \n";
errMsg += "消息: " + args.ErrorMessage + " \n"; if (errorType == "ParserError") {
errMsg += "文件: " + args.xamlFile + " \n";
errMsg += "行: " + args.lineNumber + " \n";
errMsg += "位置: " + args.charPosition + " \n";
}
else if (errorType == "RuntimeError") {
if (args.lineNumber != 0) {
errMsg += "行: " + args.lineNumber + " \n";
errMsg += "位置: " + args.charPosition + " \n";
}
errMsg += "方法名称: " + args.methodName + " \n";
} 引发新错误(errMsg);
}
</script>
</head>
<body>
<form id="form1" runat="server" style="height:100%">
<div style=" text-align:center;">
请选择:<select id="selectColor" >
<option value="White">白色</option>
<option value="Gray">灰色</option>
<option value="Black">黑色</option>
</select>
<input id="Text1" type="text" />
</div>
问题一:“select”和“input”这两个元素存在, 但是在项目启动后,网页中却看不见。 <div id="silverlightControlHost">
<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="650px" height="600px">
<param name="source" value="ClientBin/SLBigOrSmall.xap"/>
<param name="onError" value="onSilverlightError" />
<param name="background" value="white" />
<param name="minRuntimeVersion" value="4.0.50826.0" />
<param name="autoUpgrade" value="true" />
<a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0" style="text-decoration:none">
<img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="获取 Microsoft Silverlight" style="border-style:none"/>
</a>
</object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div>
</form>
</body>
</html>
MainPage.xaml.cs后台代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Windows.Browser;namespace SLBigOrSmall
{
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
HtmlLinkSL();
} #region 放大缩小元素 private void LayoutRoot_MouseWheel(object sender, MouseWheelEventArgs e)
{
// e.Delta滚动一个齿轮为120,向前为正,向后为负所以120/1200,让增量变到正负0.1
double delta = e.Delta / 1200.0;
canvasTrans.ScaleX += delta;
canvasTrans.ScaleY += delta;
} #endregion #region Html操作Silverlight元素 private void HtmlLinkSL()
{
//获取到页面上的selectColor的Html控件
HtmlElement htmlSelectColor = HtmlPage.Document.GetElementById("selectColor");
//为这个Html控件增加onchange选择变化事件htmlSelectColor.AttachEvent("onchange", new EventHandler<HtmlEventArgs>(htmlSelectColor_onChange));
问题二:发生“未将对象引用设置到对象的实例。”,可是“selectColor”这个元素在aspx页面中是存在的。就在上面标注的位置。 }
public void htmlSelectColor_onChange(object sender, HtmlEventArgs e)
{
HtmlElement htmlSelect=sender as HtmlElement;
//获取到html控件选择的值,根据这个值为Html
switch(htmlSelect.GetAttribute("value"))
{
case "White":
ellipse1.Fill = new SolidColorBrush(Colors.White);
break;
case "Gray":
ellipse1.Fill = new SolidColorBrush(Colors.Gray);
break;
case "Black":
ellipse1.Fill = new SolidColorBrush(Colors.Black);
break;
default:
break;
}
} #endregion
#region Silverlight操作Html元素 private void Button_Click(object sender, RoutedEventArgs e)
{
HtmlElement htmlElem = HtmlPage.Document.GetElementById("Text1");
问题三:发生“未将对象引用设置到对象的实例。”,可是“Text1”这个元素在aspx页面中是存在的。就在上面标注的位置。 htmlElem.SetAttribute("value", "Silverlight操作成功Html"); }
#endregion
}
}开发运行环境是:VS2010SP1,SL4...
加上runat="server"应该就行了 希望能解决楼主问题
也就是没有获取到值
在对象没有实例化 比如AA a=null;
你在用的时候直接a.XX();//这种也会爆未将对象引用到实例化但是这样就对了
a=new AA();
a.XX();
<select id="selectColor" runat="server">
<option value="White">白色</option>
<option value="Gray">灰色</option>
<option value="Black">黑色</option>
</select>
<input id="Text1" type="text" runat="server"/>
</div>
加上runat="server"应该就行了 希望能解决楼主问题
还有,平常写代码,最好加上try{}catch(){},它能帮你捕获异常,快速定位问题出处
建议 一步一步调试下,找到null值根源,在解决
加上runat="server"应该就行了 希望能解决楼主问题
这个应该可以吧