WatermarkPasswordBox コントロールが必要ですが、Winrt にはありません。たぶん、PasswordBox に Watermark プロパティを追加できます。できる人はいますか?
ありがとう
WatermarkPasswordBox コントロールが必要ですが、Winrt にはありません。たぶん、PasswordBox に Watermark プロパティを追加できます。できる人はいますか?
ありがとう
Windows 8.0 では、ここWatermarkPasswordBox
から入手できる WinRT XAML Toolkit を使用できます。任意の UI 要素 ( 、 など) を透かしまたはテキストを受け取り、テキストのスタイルを設定する を受け取るプロパティとして設定するプロパティを提供します。Watermark
Shape
Image
WatermarkText
WatermarkTextStyle
TextBlock
Style
Windows 8.1 では、同じプロパティまたは新しいプロパティを使用できPlaceholderText
ます。
コントロールのコードをライブラリから自由に取り出して変更WatermarkPasswordBox
し、アプリで使用してください。MITライセンスです。クレジットは必要ありません。次のように、.cs ファイルと .xaml ファイルを取得し、.xaml リソース ディクショナリを Themes/Generic.xaml に含めます。
<ResourceDictionary
Source="ms-appx:///YourControlsLibraryNamefNotInMainApp/RelativeDirectoryPathOfTheFile/WatermarkPasswordBox.xaml" />
更新 1
サード パーティの DLL を使用したくない場合は、これら 2 つのメソッドをPasswordBoxBehavior.cs
ファイルに追加します。
using System.Reflection;
public static T FindVisualChildByName<T>(this DependencyObject fe, string name) where T : DependencyObject
{
if (string.IsNullOrEmpty(name))
{
throw new ArgumentNullException("name");
}
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(fe); i++)
{
DependencyObject child = VisualTreeHelper.GetChild(fe, i);
string a = child.GetValue(FrameworkElement.NameProperty) as string;
if (a == name)
{
return child as T;
}
T t = FindVisualChildByName<T>(child, name);
if (t != null)
{
return t;
}
}
return default(T);
}
public static T FindVisualParent<T>(this DependencyObject fe) where T : DependencyObject
{
for (fe = VisualTreeHelper.GetParent(fe); fe != null; fe = VisualTreeHelper.GetParent(fe))
{
T t = fe as T;
if (t != null)
{
return t;
}
}
return default(T);
}
JulMar からの詳細なブログはこちら