Silverlight的几个知识点
来源:互联网 发布:锐捷网络破解 编辑:程序博客网 时间:2024/05/18 01:26
首先添加一个Grid
- <Gridx:Name="GTest"ShowGridLines="False"SizeChanged="GTest_SizeChanged"> </Grid>
1. Grid动态添加新的列和行。
- this.GTest.RowDefinitions.Add(new RowDefinition() {Height=new GridLength(30) });
- this.GTest.ColumnDefinitions.Add(new ColumnDefinition() { Width =new GridLength(1, GridUnitType.Star) });
2. 为Grid动态添加Border的样式。
- Border tempBorder =new Border();
- tempBorder.BorderThickness =new Thickness(1);
- tempBorder.BorderBrush =new SolidColorBrush(Colors.Red);
- tempBorder.SetValue(Grid.ColumnProperty, 1);
- tempBorder.SetValue(Grid.ColumnSpanProperty, 2);
- this.GTest.Children.Add(tempBorder);
3. 动态添加Button及Button的背景图片。
- // Add new button
- Button btnNew =new Button();
- ImageBrush imageBrush =new ImageBrush();
- imageBrush.ImageSource =new BitmapImage(new Uri(@"../Images/New.gif", UriKind.Relative));
- btnNew.Background = imageBrush;
- btnNew.Width = 20;
- btnNew.Height = 20;
- btnNew.SetValue(Grid.ColumnProperty, 0);
- btnNew.SetValue(Grid.RowProperty, iContentStart);
- btnNew.Click +=new RoutedEventHandler(btnNew_Click);
- titlePanel.Children.Add(btnNew);
4. 鼠标移动事件。
- Rectangle rec =new Rectangle();
- rec.Stroke =new SolidColorBrush(Colors.Black);
- rec.Fill =new SolidColorBrush(Colors.Orange);
- rec.MouseLeftButtonDown +=new MouseButtonEventHandler(rec_MouseLeftButtonDown);
- rec.MouseLeftButtonUp +=new MouseButtonEventHandler(rec_MouseLeftButtonUp);
- rec.MouseMove +=new MouseEventHandler(rec_MouseMove);
- // Mouse Down Method
- private void rec_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
- {
- FrameworkElement element = senderas FrameworkElement;
- mousePosition = e.GetPosition(null);
- trackingMouseMove =true;
- if (null != element)
- {
- element.CaptureMouse();
- element.Cursor = Cursors.Hand;
- }
- }
- // Mouse Move Method
- privatevoid rec_MouseMove(object sender, MouseEventArgs e)
- {
- FrameworkElement element = senderas FrameworkElement;
- if (trackingMouseMove)
- {
- double deltaV = e.GetPosition(null).Y - mousePosition.Y;
- double deltaH = e.GetPosition(null).X - mousePosition.X;
- double newTop = deltaV + (double)element.GetValue(Canvas.TopProperty);
- double newLeft = deltaH + (double)element.GetValue(Canvas.LeftProperty);
- element.SetValue(Canvas.TopProperty, newTop);
- element.SetValue(Canvas.LeftProperty, newLeft);
- mousePosition = e.GetPosition(null);
- }
- }
- // Mouse Move Method
- private void rec_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
- {
- FrameworkElement element = senderas FrameworkElement;
- Canvas.SetTop(element, 15);
- trackingMouseMove =false;
- element.ReleaseMouseCapture();
- mousePosition.X = mousePosition.Y = 0;
- element.Cursor =null;
- if (pop != null)
- {
- pop.IsOpen =false;
- }
- // Update the datebase
- }
5, Grid的形状改变的时候,去改变Grid的类似那些Canvas控件的形状。
- // First Remove the control in the Grid and ReBuild those controls that have been removed
- private void GTest_SizeChanged(object sender, SizeChangedEventArgs e)
- {
- List<UIElement> controlsToRemove =new List<UIElement>();
- int RowsCount = this.GTest.RowDefinitions.Count;
- for (int i = 2; i < RowsCount; i++)
- {
- controlsToRemove = (from pControlin GTest.Children
- where (i == (int)pControl.GetValue(Grid.RowProperty))
- select pControl).ToList<UIElement>();
- for (int j = 0; j < controlsToRemove.Count; j++)
- {
- GTest.Children.Remove(controlsToRemove[j]);
- }
- this.GTest.RowDefinitions.Remove(this.GTest.RowDefinitions[2]);
- }
- BuildTR(postCollection);
- }
6,利用WebService异步操作后台数据。
- private void UserControl_Loaded(object sender, RoutedEventArgs e)
- {
- BuildTRYear();
- BuildTRMonth();
- BlogWebServiceSoapClient client =new BlogWebServiceSoapClient();
- client.GetPostsCompleted +=new EventHandler<GetPostsCompletedEventArgs>(client_GetPostsCompleted);
- client.GetPostsAsync();
- }
- privatevoid client_GetPostsCompleted(object sender, GetPostsCompletedEventArgs e)
- {
- if (e.Error == null)
- {
- postCollection = e.Result;
- BuildTR(postCollection);
- }
- }
7,怎样去创建一个PopUp对话框,并设置他的位置和样式,以下代码是我写的一个popup类,用户就可以New一个,然后传入参数
contentTxt就是popup要显示的内容,xOffsite,yOffsite距离父控件的位置,canvas,父控件,这个popup不具有通用行,但是很好改,就可以去适合自己的popup对话框。
- publicclass ContentPop
- {
- private string content =string.Empty;
- private bool isAdd =true;
- public bool IsAdd
- {
- get { return isAdd; }
- set { isAdd = value; }
- }
- public string Content
- {
- get { return content; }
- set
- {
- content = value;
- if (thisPopUp.Child != null)
- {
- thisPopUp.Child =null;
- AddContent(content);
- }
- }
- }
- private bool isOpen = false;
- public bool IsOpen
- {
- get { return isOpen; }
- set
- {
- isOpen = value;
- thisPopUp.IsOpen = isOpen;
- }
- }
- private Popup thisPopUp = null;
- public Popup ThisPopUp
- {
- get { return thisPopUp; }
- }
- private double xOffsite;
- public double XOffsite
- {
- get { return xOffsite; }
- set
- {
- xOffsite = value;
- thisPopUp.HorizontalOffset = xOffsite;
- }
- }
- private double yOffsite;
- public double YOffsite
- {
- get { return yOffsite; }
- set
- {
- yOffsite = value;
- thisPopUp.VerticalOffset = yOffsite;
- }
- }
- private Canvas parantCanvas;
- public Canvas ParantCanvas
- {
- get { return parantCanvas; }
- set
- {
- parantCanvas = value;
- parantCanvas.Children.Add(thisPopUp);
- }
- }
- private Border border = null;
- public ContentPop(string content,double xOffsite,double yOffsite,Canvas canvas)
- {
- thisPopUp =new Popup();
- AddContent(content);
- canvas.Children.Add(thisPopUp);
- thisPopUp.HorizontalOffset = xOffsite;
- thisPopUp.VerticalOffset = xOffsite;
- thisPopUp.IsOpen =true;
- this.content = content;
- this.xOffsite = xOffsite;
- this.yOffsite = yOffsite;
- this.isOpen = true;
- }
- private void AddContent(string content)
- {
- if (thisPopUp.Child == null)
- {
- border =new Border();
- border.BorderBrush =new SolidColorBrush(Colors.Black);
- border.BorderThickness =new Thickness(0);
- StackPanel panel1 =new StackPanel();
- TextBlock textblock1 =new TextBlock();
- textblock1.Text = content;
- textblock1.Opacity = 100;
- panel1.Children.Add(textblock1);
- border.Child = panel1;
- thisPopUp.Child = border;
- }
- }
- }
- Silverlight的几个知识点
- Silverlight的几个知识点
- Silverlight的几个知识点(二)
- 几个silverlight 的网站
- JAVA的几个知识点
- activity的几个知识点
- C++的几个知识点
- 几个Android的知识点
- WebService的几个知识点
- C#的几个知识点
- transform的几个知识点
- 几个关于silverlight的网站
- Silverlight知识点
- 收录java的几个知识点
- 关于jfreechart的几个知识点
- 摘抄android的几个知识点
- perl的几个小知识点
- 内存的几个重要知识点
- Silverlight知识点
- 视频网站是怎么建成的--------JustinTV教你如何打造实时视频网站
- char** argv与char *argv[]区别
- ADN FDN SDN
- C++ 十六周任务-字符串游戏2
- Silverlight的几个知识点
- 漂亮的 CSS3 带状态的按钮
- JOptionPane各种提示框
- nginx + PHP 下 添加 https 的支持
- Winform调用系统的剪切,复制,粘贴文件功能
- 【转载】atime、ctime、mtime详解
- Ubuntu tar命令
- fatal error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "stdafx.h
- 【评论】iPhone 5是苹果重演桌面历史的先兆?