C# 在文本框中添加控件?

C# 在文本框中添加控件?,c#,wpf,xaml,textbox,C#,Wpf,Xaml,Textbox,我正在尝试创建一个usercontrol,它将模拟一个常规的文本框,但具有标记。大致如下: 但我遇到了麻烦…我试着这么做: <TextBox> <Border/> </TextBox> 但这是行不通的。如果不使用richTextBox,我将如何做到这一点 谢谢文本框不是容器,因此没有孩子。也许可以尝试将文本框包装到容器对象中 一些示例代码可以帮助您开始: <Border Grid.Row="0" BorderBrush="#FF

我正在尝试创建一个usercontrol,它将模拟一个常规的文本框,但具有标记。大致如下:

但我遇到了麻烦…我试着这么做:

<TextBox> 
    <Border/>
</TextBox>

但这是行不通的。如果不使用richTextBox,我将如何做到这一点


谢谢

文本框不是容器,因此没有孩子。也许可以尝试将文本框包装到容器对象中

一些示例代码可以帮助您开始:

    <Border Grid.Row="0" BorderBrush="#FF808080" Background="#FFFFFFFF" >
        <DockPanel>
            <ItemsControl DockPanel.Dock="Left" ItemsSource="{Binding Tags}">
                <ItemsControl.ItemsPanel>
                    <ItemsPanelTemplate>
                        <WrapPanel />
                    </ItemsPanelTemplate>
                </ItemsControl.ItemsPanel>
                <ItemsControl.ItemTemplate>
                    <DataTemplate>
                        <Border BorderBrush="#FF000000" BorderThickness="1" Margin="3">
                            <DockPanel>
                                <Button DockPanel.Dock="Right" Content="X" />
                                <TextBlock Text="{Binding}" Margin="3" />
                            </DockPanel>
                        </Border>
                    </DataTemplate>
                </ItemsControl.ItemTemplate>
            </ItemsControl>
            <TextBox BorderThickness="0" Text="{Binding Text}" VerticalContentAlignment="Center" />
        </DockPanel>
    </Border>


不过,重新设置样式和重新绑定最适合您的解决方案。

文本框不是容器,因此没有子项。也许可以尝试将文本框包装到容器对象中

一些示例代码可以帮助您开始:

    <Border Grid.Row="0" BorderBrush="#FF808080" Background="#FFFFFFFF" >
        <DockPanel>
            <ItemsControl DockPanel.Dock="Left" ItemsSource="{Binding Tags}">
                <ItemsControl.ItemsPanel>
                    <ItemsPanelTemplate>
                        <WrapPanel />
                    </ItemsPanelTemplate>
                </ItemsControl.ItemsPanel>
                <ItemsControl.ItemTemplate>
                    <DataTemplate>
                        <Border BorderBrush="#FF000000" BorderThickness="1" Margin="3">
                            <DockPanel>
                                <Button DockPanel.Dock="Right" Content="X" />
                                <TextBlock Text="{Binding}" Margin="3" />
                            </DockPanel>
                        </Border>
                    </DataTemplate>
                </ItemsControl.ItemTemplate>
            </ItemsControl>
            <TextBox BorderThickness="0" Text="{Binding Text}" VerticalContentAlignment="Center" />
        </DockPanel>
    </Border>


重新设置样式和重新绑定最适合您的解决方案。

我认为您需要为文本框创建自定义样式。不幸的是,这并不是一件小事。我该如何制作这样的自定义样式呢?试试这个来帮助您开始。这并不完全是你所需要的,但希望能为你指出正确的方向。另一个例子,我不完全确定样式是否会影响控件包含自定义控件的能力。我认为你需要为文本框创建自定义样式。不幸的是,这并不是一件小事。我该如何制作这样的自定义样式呢?试试这个来帮助您开始。这并不完全是你所需要的,但希望能为你指出正确的方向。另一个例子,我不完全确定样式是否会影响控件包含自定义控件的能力