基于 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>
这显然是一个极其简化的示例,但您明白了。
我创建了一个基于 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>
这显然是一个极其简化的示例,但您明白了。