Я пытаюсь создать рекламное объявление для PasswordBox
, чтобы добавить функцию водяного знака.Я основываю его на проекте на http://sladorner.codeplex.com/. Я получил реализацию водяного знака, работающую в приложении для песочницы, но у меня возникают проблемы, когда я пытаюсь добавить это в библиотеку классов.
Когда выполняется строка, которая устанавливает _Popup.Child
, я получаю исключение «Ошибка HRESULT E_FAIL возвращена из вызова COM-компонента».Есть ли решение для этого (или, может быть, совершенно другой способ обойти водяной знак PasswordBox
)?
public class PasswordBoxWatermarkAdorner : Control
{
private Border _ContentBorder;
private TextBlock _WatermarkTextBlock;
private PasswordBox _AssociatedElement;
private Popup _Popup;
private string _WatermarkText;
public PasswordBoxWatermarkAdorner(PasswordBox associatedElement, string watermarkText)
{
this.DefaultStyleKey = typeof(PasswordBoxWatermarkAdorner);
_AssociatedElement = associatedElement;
_WatermarkText = watermarkText;
_Popup = new Popup
{
Child = this,
IsOpen = true
};
_Popup.LayoutUpdated += _Popup_LayoutUpdated;
}