C# 在windows应用商店应用程序中轻松输入数据

C# 在windows应用商店应用程序中轻松输入数据,c#,xaml,windows-8.1,C#,Xaml,Windows 8.1,我正在做一个简单的Windows8商店应用程序,我想有一个简单的双击(点击)编辑 我在想一些类似的事情 void editProducer(object sender, DoubleTappedRoutedEventArgs e) { var t = new TextBox() {FontSize = 48, Width = 600, DataContext = DataModel.Producer}; var f = new Flyout() {Content = t};

我正在做一个简单的Windows8商店应用程序,我想有一个简单的双击(点击)编辑

我在想一些类似的事情

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; };

一种更简单的方法是使用带有自定义样式的简单文本框,该文本框在禁用时类似于
TextBlock
IsEnabled
为false)

因此,您只需将此事件附加到文本字段即可(双击):


张贴一个更完整的例子。我无法让它工作,但听起来可能。问题是,据我所知,如果控件未启用,doubleTap不会从MSDN中触发:“未启用的元素不会参与命中测试或聚焦,因此不会成为输入事件的来源。”我将看一看。
void editProducer(object sender, DoubleTappedRoutedEventArgs e)
{
  (sender as TexBlock).IsEnabled = ! (sender as TexBlock).IsEnabled
}