利用點部落的 Demo 網站,測試 Silverlight 2.0 網頁。利用 TexBox 控制項,撰寫 GotFocusTextChanged 來根據使用者的輸入來控制 Watermark 的效果。

Silverlight 2.0 發佈至 IIS Server,主要 System.Web.Silverlight.dll 放在 Bin 目錄Silverlight Application 產生的 *.xap 檔案則放置在 ClientBin 目錄

TextBoxWatermark01

TextBoxWatermark 測試網頁

SayHello.aspx 檔案:在 ASP.Net 網頁中,內嵌一個 Silverlight 控制項,被載入 ClientBin 下的 Silverlight Application 的 *.xap 檔案

   1:  <%@ Page Language="C#" AutoEventWireup="true" CodeFile="SayHello.aspx.cs" Inherits="SayHello" %>
   2:   
   3:  <%@ Register Assembly="System.Web.Silverlight" Namespace="System.Web.UI.SilverlightControls" TagPrefix="asp" %>
   4:  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
   5:  <html xmlns="http://www.w3.org/1999/xhtml">
   6:  <head runat="server">
   7:      <title></title>
   8:  </head>
   9:  <body>
  10:      <form id="form1" runat="server">
  11:      <asp:ScriptManager ID="ScriptManager1" runat="server">
  12:      </asp:ScriptManager>
  13:      <div style="height: 100%;">
  14:          <asp:Silverlight ID="Xaml1" runat="server" Source="~/ClientBin/SayHello.xap" MinimumVersion="2.0.30523" Width="100%" Height="100%" />
  15:      </div>
  16:      </form>
  17:  </body>
  18:  </html>

 

 

Page.xml:xml 檔案格,描述 Silverlight 控制項,名稱、樣式及事件處理。

   1:  <UserControl x:Class="SayHello.Page"
   2:      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
   3:      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
   4:      Width="400" Height="300" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
   5:      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d">
   6:      <Grid x:Name="LayoutRoot" Background="White">
   7:          <TextBox x:Name="txtName" Height="42" HorizontalAlignment="Stretch" Margin="85,42.4449996948242,175,0" VerticalAlignment="Top" FontFamily="Comic Sans MS" FontSize="24" Text="請輸入姓名" Foreground="#FFCCCCCC" GotFocus="txtName_GotFocus" TextChanged="txtName_TextChanged" Background="#FFF0F8FF" Width="140"/>
   8:          <TextBlock HorizontalAlignment="Left" Margin="9,51,0,0" VerticalAlignment="Top" FontFamily="Comic Sans MS" FontSize="24" Text="姓名:" TextWrapping="Wrap" d:LayoutOverrides="Width"/>
   9:          <Button x:Name="btnSubmit" Height="33.445" HorizontalAlignment="Right" Margin="0,51,91,0" VerticalAlignment="Top" Width="80" Content="送出" d:LayoutOverrides="Height" FontFamily="Comic Sans MS" FontSize="24" Click="btnSubmit_Click" RenderTransformOrigin="0.0199999995529652,0.657999992370605" />
  10:          <TextBlock x:Name="txtResult" Height="42" HorizontalAlignment="Stretch" Margin="19,88.4449996948242,21,0" VerticalAlignment="Top" Text="" TextWrapping="Wrap" d:LayoutOverrides="VerticalAlignment" FontFamily="Comic Sans MS" FontSize="24" TextAlignment="Center" Foreground="#FFFF0000" FontWeight="Bold"/>
  11:          <Button x:Name="btnReset" Height="33.445" HorizontalAlignment="Right" Margin="0,51,7,0" VerticalAlignment="Top" Width="80" Content="清除" FontFamily="Comic Sans MS" FontSize="24" Click="btnReset_Click"  RenderTransformOrigin="0.0199999995529652,0.657999992370605" d:LayoutOverrides="Height" />
  12:      </Grid>
  13:  </UserControl>

 

 

Page.xml.cs:撰寫  Silverlight 控制項事件處理與程式邏輯

   1:  using System.Windows;
   2:  using System.Windows.Controls;
   3:  using System.Windows.Media;
   4:   
   5:  namespace SayHello
   6:  {
   7:      public partial class Page : UserControl
   8:      {
   9:          public Page()
  10:          {
  11:              InitializeComponent();
  12:          }
  13:   
  14:          private void txtName_GotFocus(object sender, RoutedEventArgs e)
  15:          {
  16:              if (string.IsNullOrEmpty(txtName.Text) || txtName.Text == "請輸入姓名")
  17:              {
  18:                  txtName.Text = string.Empty;
  19:              }
  20:          }
  21:   
  22:          private void txtName_TextChanged(object sender, TextChangedEventArgs e)
  23:          {
  24:              if (string.IsNullOrEmpty(txtName.Text) || txtName.Text == "請輸入姓名")
  25:              {
  26:                  txtName.Foreground = new SolidColorBrush(Color.FromArgb(255, 204, 204, 204));
  27:                  txtName.Background = new SolidColorBrush(Color.FromArgb(255, 240, 248, 255));
  28:              }
  29:              else
  30:              {
  31:                  txtName.Foreground = new SolidColorBrush(Color.FromArgb(255, 0, 0, 255));
  32:                  txtName.Background = new SolidColorBrush(Color.FromArgb(255, 255, 255, 255));
  33:              }
  34:          }
  35:   
  36:          private void btnSubmit_Click(object sender, RoutedEventArgs e)
  37:          {
  38:              if (string.IsNullOrEmpty(txtName.Text) || txtName.Text == "請輸入姓名")
  39:              {
  40:                  txtName.Text = "請輸入姓名";
  41:                  txtResult.Text = string.Empty;
  42:                  return;
  43:              }
  44:   
  45:              txtResult.Text = string.Format("哈囉,{0}!", txtName.Text);
  46:          }
  47:   
  48:          private void btnReset_Click(object sender, RoutedEventArgs e)
  49:          {
  50:              txtName.Text = "請輸入姓名";
  51:              txtResult.Text = string.Empty;
  52:          }
  53:      }
  54:  }

 

 

 

TextBoxWatermark 測試網頁


DotBlogs Tags: ASP.NET Sliverlight

Feedback

標題 *

名稱 *

Email 

Url  

回應 *

登入後使用進階評論

Please add 4 and 8 and type the answer here: