Для WPF нет способа. Вы должны имитировать это. См. Этот пример . Вторичным (нестабильным решением) является размещение пользовательского элемента управления WinForms, который наследуется от TextBox, и отправка сообщения EM_SETCUEBANNER в элемент управления для редактирования. то есть.
[DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern IntPtr SendMessage(IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam);
private const Int32 ECM_FIRST = 0x1500;
private const Int32 EM_SETCUEBANNER = ECM_FIRST + 1;
private void SetCueText(IntPtr handle, string cueText) {
SendMessage(handle, EM_SETCUEBANNER, IntPtr.Zero, Marshal.StringToBSTR(cueText));
}
public string CueText {
get {
return m_CueText;
}
set {
m_CueText = value;
SetCueText(this.Handle, m_CueText);
}
Также, если вы хотите разместить подход управления WinForm, у меня есть фреймворк, который уже включает эту реализацию, который называется BitFlex Framework, который вы можете скачать бесплатно здесь .
Вот статья о BitFlex, если вам нужна дополнительная информация. Вы начнете находить, что если вам нужны элементы управления в стиле проводника Windows, то, как правило, они никогда не выходят из коробки, а поскольку WPF не работает с дескрипторами, вы, как правило, не можете написать простую оболочку для Win32 или существующий элемент управления с WinForms.
Скриншот:
