我正在做一个简单的 Windows 8 商店应用程序,我想要一个简单的双击(点击)来编辑。
我在想一些类似的事情;
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; };