效果圖如下:
使用的xaml**如下:
<其中第乙個是帶佔位符的文字框,第二個使用附加屬性裝飾在現有的文字框上。window
x:class
="placeholdertextbox.mainwindow"
xmlns
=""xmlns:x
=""xmlns:local
="clr-namespace:placeholdertextbox"
title
="mainwindow"
width
="525"
height
="350"
>
<
stackpanel
>
<
local:placeholdertextbox
placeholder
="查詢"
/>
<
textbox
x:name
="txttest"
local:placeholdermanager.placeholder
="搜尋"
/>
stackpanel
>
window
>
將乙個與佔位符繫結的textblock放入visualbrush內,在textbox的text為空時使用visualbrush繪製背景,不為空時背景設為null。
正因為如此,如果文字框設定了背景,使用此方法就會覆蓋原有的背景。但一般不會設定textbox的背景。
**較簡單,如下:
using**較簡單,如下:system.globalization;
using
system.windows;
using
system.windows.controls;
using
system.windows.data;
using
system.windows.media;
namespace
placeholdertextbox
set }
#endregion properties
#region public methods
public
placeholdertextbox()
;_placeholdertextblock.setbinding(textblock.textproperty, binding);
_placeholdertextblock.fontstyle =fontstyles.italic;
_placeholdervisualbrush.alignmentx =alignmentx.left;
_placeholdervisualbrush.stretch =stretch.none;
_placeholdervisualbrush.visual =_placeholdertextblock;
background =_placeholdervisualbrush;
textchanged +=placeholdertextbox_textchanged;
}#endregion public methods
#region events handling
//////文字變化的響應
/// ///
///private
void placeholdertextbox_textchanged(object
sender, textchangedeventargs e)
#endregion events handling}
}
usingsystem.collections.generic;
using
system.windows;
using
system.windows.controls;
using
system.windows.data;
using
system.windows.media;
namespace
placeholdertextbox
//////
設定佔位符
/// ///
佔位符所在的物件
///佔位符 public
static
void setplaceholder(dependencyobject obj, string
value)
#endregion attached dependencyproperty
#region events handling
//////佔位符改變的響應
/// ///
** ///
改變資訊
public
static
void
onplaceholderchanged(dependencyobject d, dependencypropertychangedeventargs e)
;placeholdertextblock.setbinding(textblock.textproperty, binding);
placeholdertextblock.fontstyle =fontstyles.italic;
var placeholdervisualbrush = new
visualbrush
;txt.background =placeholdervisualbrush;
txt.textchanged +=placeholdertextbox_textchanged;
txt.unloaded +=placeholdertextbox_unloaded;
txtbrushes.add(txt, placeholdervisualbrush);}}
//////
文字變化的響應
/// ///
///private
static
void placeholdertextbox_textchanged(object
sender, textchangedeventargs e)
}//////
文字框解除安裝的響應
/// ///
///private
static
void placeholdertextbox_unloaded(object
sender, routedeventargs e)
}#endregion events handling}
}
js 佔位符 正則 帶佔位符的正規表示式
這是一種更通用的方法,它不要求您提供模式,適用於多個佔位符,並且可以匹配多個單詞的佔位符。比如說,我們有以下模板和輸入字串 string input hi john doe,how are you?i m jane.string template hi namevar how are you?i m...
WPF 限制Textbox輸入的內容
限制文字框textbox的輸入內容,在很多場景都有應用。舉個例子,現在文字框中,只能輸入0 1 2 3 4 5 6 7 8 9 這11個字元。限制輸入0 9很容易實現,關鍵是這個 符號。它在wpf中對應的是key.oempipe鍵。如果直接允許該鍵輸入,那麼會有 這個符號也可以輸入。那麼問題來了,怎...
佔位符的使用
preparestatement介面改善問題 佔位符 演示 使用statement介面物件傳送的sql語句需要在資料庫中進行一次編譯之後成為指令才能執行,每條sql語句都需要編譯一次,這樣是很慢的。使用statement介面才做的sql可以需要使用字串拼接的方式實現,這樣的方式可能存在sql注入的安...