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;
}
}
|