首先 ,我们需要知道的是这个控件的命名空间,因为昨天就发生了一件比较尴尬的事,比如我们几个人在做项目,我没有把工程迁出,然后我在做的时候往项目里面加了一个autocompletebox控件,由于我是直接从工具箱里面点出来的,所以他直接在我的引用那边加了几个,而我却没有感觉,放上去之后,同事们在用的时候就会发现缺少引用。……
System.Windows.Controls.input 和System.Windows.Controls.Data.Input 两个引用
使用方法:
先往xaml页面里面拉一个Autocompletebox控件,但是此时你xaml页面的引用却不是写上面那两个,因为在silverlight4.0中这个控件的前缀是sdk所以我们要加sdk的引用集
xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"
然后在页面里设置他的一些属性
xaml页面的代码:
<sdk:AutoCompleteBox x:Name="autoComplete2" IsTextCompletionEnabled="False" Margin="0,0,5,0" Width="55" Height="25" Foreground="Black"
HorizontalAlignment="Center" VerticalAlignment="Center" MouseLeftButtonDown="autoComplete2_MouseLeftButtonDown" GotFocus="autoComplete2_GotFocus">
</sdk:AutoCompleteBox>
然后CS里面的代码:
autoComplete2.FilterMode = AutoCompleteFilterMode.Contains; //设置该控件的筛选模式,我这边设置的是包含
autoComplete2.ItemsSource = aps; //这是数据绑定,你可以在任意的地方进行数据绑定
private void autoComplete2_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) //这个事件其实只能在你点击边框的时候让下拉框出现
{
autoComplete2.MinimumPrefixLength = 0; //一定要有这一行,不然你的isdropdownopen属性怎么设置都是false
autoComplete2.IsDropDownOpen = true;
}
private void autoComplete2_GotFocus(object sender, RoutedEventArgs e)
{
autoComplete2.MinimumPrefixLength = 0;
autoComplete2.IsDropDownOpen = true;
}