WPF Usercontrol基于文本框/弹出窗口定义

时间:2015-09-04 18:15:33

标签: wpf xaml textbox user-controls popup

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

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

现在我的问题是:我在哪里可以将Popup的外观/结构定义为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>

1 个答案:

答案 0 :(得分:1)

我认为你完全错过UserControl实际上是什么。简而言之,UserControl是一个集合控制组成一个更大的......呃...控制。

  

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

您在此处描述的内容 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>

这显然是一个非常简单的例子,但你明白了。