TextBox自定义错误

时间:2015-04-10 18:39:13

标签: c# wpf

我需要创建一个与背景完全融合的textBoox,所以我使用了这个XAML:

<TextBox Text="Hello" VerticalAlignment="Bottom" Name="txtAsk" FontFamily="Consolas" Margin="8,0,0,0" TextWrapping="Wrap" AutoWordSelection="True" KeyDown="onEnter">
                <TextBox.Template>
                    <ControlTemplate TargetType="{x:Type TextBox}">
                        <Grid>
                            <Rectangle  Stroke="{StaticResource ResourceKey=detailMarkBrush}" StrokeThickness="0"/>
                            <TextBox Margin="4" Text="{TemplateBinding Text}" BorderThickness="0" Background="{x:Null}" SnapsToDevicePixels="True" />
                        </Grid>
                    </ControlTemplate>
                </TextBox.Template>               
            </TextBox>

然而,现在问题是,当我将一个按钮附加到界面并触发它以在消息窗口中显示TextBox的内容时,它甚至在更改文本框内的值后才显示默认文本! 按钮代码如下:

private void btnTriggerEnter_Click(object sender, RoutedEventArgs e)
        {
            MessageBox.Show(txtAsk.Text);
        }

我不确定我搞砸了哪里。如果需要任何其他细节,请发表评论。 我的MainWindow有这段代码:

public MainWindow()
        {
            InitializeComponent();
            Loaded += new RoutedEventHandler(MainWindow_Loaded);         
        }

感谢。

1 个答案:

答案 0 :(得分:1)

您应该使用:

Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Text}"

那是因为TemplateBinding只为您提供OneWay来源(在基础Binding中),您需要TwoWay