Если вы изменяете свойство Text
для TextBox
программно, то оно автоматически ставит каретку в начале. Итак, я думаю, что вы подписались на событие TextChanged
в TextBox
и поместили некоторый код, подобный myTextBox.Text = "some text";
, в обработчик событий.
Когда пользователь изменяет событие Text
, TextChanged
, ваш обработчик событий снова меняет Text
, в результате каретка устанавливается на начало.
Так, это не из-за какой-либо ошибки вашего кода. Это поведение по умолчанию TextBox
, в настоящее время, является ли это функция или ошибка, что это спорно.
Я также столкнулся с этим, и мое решение заключалось в том, чтобы программно поместить курсор в конец, если необходимо какое-либо изменение программного текста, с таким кодом в конце обработчика события:
myTextBox.Select(myTextBox.Text.Length, 0);
Надежда, которая помогает .
Вы присвоили "Красную" строку. Ваше свойство Background должно иметь цвет шрифта:
using System.Windows;
using System.ComponentModel;
namespace TestBackground88238
{
public partial class Window1 : Window, INotifyPropertyChanged
{
#region ViewModelProperty: Background
private Color _background;
public Color Background
{
get
{
return _background;
}
set
{
_background = value;
OnPropertyChanged("Background");
}
}
#endregion
//...//
}
Тогда можно использовать привязку к SolidColorBrush как это:
public Window1()
{
InitializeComponent();
DataContext = this;
Background = Colors.Red;
Message = "This is the title, the background should be " + Background.toString() + ".";
}
не 100%, уверенных в .toString () метод на Цветовом объекте. Это могло бы сказать Вам, что это - Цветной Класс, но Вы будете figur это;)
Я понял это, это был просто конфликт именования: если вы используете TheBackground вместо Background, он работает так, как было показано в первом примере. Свойство Фоновое изображение нарушает фон свойства "Окно"
.Рекомендую прочитать следующий пост в блоге об отладочной привязке данных: http://beacosta.com/blog/?p=52
И для этого конкретного вопроса: Если вы посмотрите на предупреждения компилятора, то заметите, что в свойстве сокрыто свойство Window.Background (или Control, или любой другой класс, который определяет это свойство).
. Свойство Background
ожидает объект Brush
, а не строку. Измените тип свойства на Brush
и инициализируйте его следующим образом:
Background = new SolidColorBrush(Colors.Red);
В качестве имени свойства можно использовать "фон", если только вы дадите своему окну имя и используете это имя в "Источнике" переплета.