2013-11-12 3 views
0

Я занимаюсь простым приложением для хранения приложений на окнах 8, и я хотел бы иметь простой двойной щелчок (коснуться) для редактирования.Простой способ сделать ввод данных в приложении для магазина Windows

Я думал о чем-то рядом;

void editProducer(object sender, DoubleTappedRoutedEventArgs e) 
{ 
    var t = new TextBox() {FontSize = 48, Width = 600, DataContext = DataModel.Producer}; 
    var f = new Flyout() {Content = t}; 
    f.ShowAt((FrameworkElement)sender); 
} 

Но я не смог получить версию этой работы.

Что я пропустил (я безуспешно пытался добавить привязку)? Или совершенно неправильно пытаться сделать это таким образом?

Обновление;

Этот код почти походил на то, что он собирался работать, и был ближе к первоначальному направлению, но все еще не работал;

var srcTextBlock = sender as TextBox; 
var d = srcTextBlock.GetBindingExpression(TextBlock.TextProperty); 
var t = new TextBlock() { FontSize = 48, Width = 200 }; 
t.SetBinding(TextBlock.TextProperty, d.ParentBinding); 
var f = new Flyout() { Content = t }; 
f.ShowAt((FrameworkElement)sender); 

, так что я в конце концов пошел с чем-то подобным на данный момент, исходя из предложенного направления;

var tb = (TextBox) sender; 
tb.IsReadOnly = false; 
tb.SelectedText = tb.Text; 
tb.LostFocus += (o, args) => { tb.IsReadOnly = true; }; 

ответ

0

Более простой способ сделать это состоит в использовании простой TextBox с индивидуальным стилем, который выглядит как TextBlock, когда он отключен (IsEnabled ложно).

Итак вы просто должны прикрепить это событие к текстовым полям, чтобы заставить его работать (на двойное нажатие):

void editProducer(object sender, DoubleTappedRoutedEventArgs e) 
{ 
    (sender as TexBlock).IsEnabled = ! (sender as TexBlock).IsEnabled 
} 
+0

сообщение более полный пример. Я не мог заставить это работать, но, похоже, это возможно. – Spiked3

+0

Проблема, насколько я могу судить, заключается в том, что элемент управления не включен, doubleTap не работает – Spiked3

+0

Из MSDN: «Элементы, которые не включены, не участвуют в тестировании ударов или фокусе и, следовательно, не будут источниками входных событий. " Я посмотрю. –

Смежные вопросы