Silverlight操作网页元素
还是通过网页元素的ID得到给元素,然后设置该元素的属性即可
Html
1
|
<
img
id
=
"myimg"
src
=
"ClientBin/Images/Eagle.jpg"
alt
=
"niao"
/>
|
XAML
1
2
3
|
<
StackPanel
>
<
Slider
x:Name
=
"myslider"
Maximum
=
"1000"
Minimum
=
"0"
Value
=
"50"
ValueChanged
=
"myslider_ValueChanged"
></
Slider
>
</
StackPanel
>
|
CS
1
2
3
4
5
|
private
void
myslider_ValueChanged(
object
sender, RoutedPropertyChangedEventArgs<
double
> e)
{
HtmlElement img = HtmlPage.Document.GetElementById(
"myimg"
);
img.SetAttribute(
"width"
,e.NewValue.ToString());
}
|
反之呢?
我们要改变Silvelight中的元素,那么必须在后台事件中,所以,原理就是把html元素的事件绑定到code-behind即可
html
1
2
3
4
5
|
<
select
id
=
"select"
>
<
option
title
=
"Red"
value
=
"Red"
selected>Red</
option
>
<
option
title
=
"Blue"
value
=
"Blue"
>Blue</
option
>
<
option
title
=
"Yellow"
value
=
"Yellow"
>Yellow</
option
>
</
select
>
|
XAML
1
|
<
Ellipse
x:Name
=
"myell"
Width
=
"200"
Height
=
"200"
Fill
=
"Red"
></
Ellipse
>
|
CS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
public
MainPage()
{
InitializeComponent();
HtmlElement select = HtmlPage.Document.GetElementById(
"select"
);
select.AttachEvent(
"onchange"
,
new
EventHandler<HtmlEventArgs>(Select_onChange));
}
private
void
Select_onChange(
object
sender, HtmlEventArgs e)
{
HtmlElement select = HtmlPage.Document.GetElementById(
"select"
);
string
Value = select.GetAttribute(
"value"
);
switch
(Value)
{
case
"Red"
:
myell.Fill =
new
SolidColorBrush(Colors.Red);
break
;
case
"Blue"
:
myell.Fill =
new
SolidColorBrush(Colors.Blue);
break
;
case
"Yellow"
:
myell.Fill =
new
SolidColorBrush(Colors.Yellow);
break
;
default
:
break
;
}
}
|