基于 Textbox/Popup 定义的 WPF 用户控件

WPF Usercontrol based on Textbox/Popup definition

我创建了一个基于 TextBox 的 "UserControl"。这意味着我创建了一个新的 UserControl,并在 xaml 和 xaml.cs 文件中用 TextBox 替换了 UserControl。

现在我希望我的新 TextBox 控件有一个弹出窗口来显示一些建议。

现在我的问题是:在哪里可以将Popup的look/structure定义为XAML? Popup 定义应是 newTextBox 的一部分。

这就是我所拥有的:

    <TextBox x:Class="WpfApplication11.UserControl2"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:local="clr-namespace:WpfApplication11"
         mc:Ignorable="d" 
         MaxWidth="{Binding Path=ActualWidth}">
    </TextBox>

我认为您完全不知道 UserControl 到底是什么。简单来说,一个UserControl就是一个集合控件组成一个更大的...呃...控制。

I want that my new TextBox control shall have a popup to display some suggestions.

您在这里描述的一个UserControl。您不能将 Popup 放在 TextBox.

所以。你在这里追求的可能是这样的:

<UserControl ... >
    <Grid>
        <TextBox Name="txt" 
                 Width="150" ... />

        <Popup PlacementTarget="{Binding ElementName=txt}"
               Placement="Bottom"
               IsOpen="True"
               StaysOpen="True"
               Width="{Binding ActualWidth, ElementName=txt}">
            <!-- Some popup content here -->
        </Popup>

     </Grid>
</UserControl>

这显然是一个极其简化的示例,但您明白了。