WPF:带有插入号和选择的自定义文本框

时间:2019-02-24 09:55:57

标签: c# wpf xaml textbox custom-controls

我正在使用WPF(C#)工作。

我想有一个文本框,它可以处理其他控件,而不仅仅是文本。我已经取得了一些进步,但是还不够。我苦苦挣扎的问题是自定义文本框中没有插入符号,也没有选择。

自定义文本框具有以下样式:

<Style x:Key="CustomTextBox" TargetType="{x:Type local:CustomTextBox}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type local:CustomTextBox}">
                <Grid>
                    <ContentPresenter />
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

可能是由于模板没有插入符没有选择有什么方法可以支持这些吗?我必须创建模板,以便显示其他控件(TextBox仅接受文本),例如:

TextBox content

这是我使用自定义文本框的方式

    <local:CustomTextBox Grid.Row="0" Style="{StaticResource CustomTextBox}" Height="80" Focusable="True">
        <local:CustomTextBox.Content>
            <ContentControl Template="{StaticResource SquareRoot}">
                <ContentControl Template="{StaticResource SquareRoot}">
                    <ContentControl Template="{StaticResource SquareRoot}">
                        <ContentControl Template="{StaticResource SquareRoot}">
                            <ContentControl Template="{StaticResource SquareRoot}">
                                255551
                            </ContentControl>
                        </ContentControl>
                    </ContentControl>
                </ContentControl>
            </ContentControl>
        </local:CustomTextBox.Content>
    </local:CustomTextBox>

CustomTextBox类

[ContentProperty("Content")]
internal sealed class CustomTextBox : TextBox
{

    public FrameworkElement Content
    {
        get { return (FrameworkElement)GetValue(ContentProperty); }
        set { SetValue(ContentProperty, value); }
    }

    public static readonly DependencyProperty ContentProperty =
        DependencyProperty.Register("Content", typeof(FrameworkElement), typeof(CustomTextBox), new UIPropertyMetadata(null));
}

我愿意接受任何建议。

0 个答案:

没有答案