2012-06-11 113 views
1

我重新設置了我的組合框的模板,以便下拉彈出框出現在組合框的原點。下面是它是如何做:組合框自動關閉

<ControlTemplate TargetType="{x:Type ComboBox}"> 
<Grid> 
    <ToggleButton/> 
    <ContentPresenter/> 
    <Popup PlacementRectangle="0,0,0,0" > 
    <Grid Name="DropDown"> 
    ... 
    </Grid> 
    </Popup> 
</Grid> 
</ControlTemplate> 

我有這個唯一的問題是,當我點擊下拉框,它會自動選擇項目的鼠標上並關閉。我可以選擇任何其他項目的唯一方法是按住鼠標按鈕,然後將鼠標移動到想要的項目上。如何解決這個問題?

<ToggleButton x:Name="myToggle" ClickMode="Press" /> 
<Popup x:Name="Popup" 
    IsOpen="{Binding Path=IsChecked, ElementName=myToggle}" 
    PlacementRectangle="0,0,0,0" 
    StaysOpen="False"> 
</Popup> 
+0

請添加一些更多的XAML或更好的,一個小的工作版本,以便我們可以看到自己的問題。 – Blachshma

回答

1

你應該像在彈出的窗口IsOpen屬性綁定到切換按鈕,什麼的。希望它有助於某人。

放出來什麼是寫在文章:

使用window.ShowDialog() instead of window.Show();

當使用顯示顯示包含組合框的窗口下(),而不是ShowDialog的()在彈出的列表中 會只要鼠標 釋放關閉,相反直到 做出選擇或控制失去焦點保持開放的預期行爲。