Sveiki,
ar galetu mane kas apsviesti kaip reikia atidaryti popup'a
wpf/silverlight aplikacijoje? Guglas kolkas normalaus sprendimo nepadejo
rasti.
Problema su popup'u yra tame, kad StayOpen=false galimybes normaliai
veikiancios neina padaryti. Popupa atidarineju su ToggleButton(Kaip ir
wpf Combobox'e). Kolkas pasidariau veikianti(kreivai) sprendima:
<ToggleButton x:Name="bt1"
Focusable="False"
ClickMode="Release"
IsHitTestVisible="{Binding ElementName=pop, Path=IsOpen,
Mode=OneWay, Converter={StaticResource invertBooleanConverter}}"/>
<Popup x:Name="pop"
IsOpen="{Binding IsChecked, ElementName=bt1}"
PlacementTarget="{Binding ElementName=bt1}"
StaysOpen="False"
Focusable="False"
PopupAnimation="Fade">
....
</Popup>
Sitam "sprendime" yra du blogi dalykai:
1. Tam, kad popupas uzsidarytu paspaudus ant ToggleButton, reik
IsHitTestVisible priskirti false, nes kitaip popupas bus uzdaromas
paspaudus pele ir vel atidaromas atleidus(Nelieka mouseover efektu ir
siaip nepatinka).
2. Atlikus DragDrop'a popupe, jis neuzsidaro, nei paspaudus kitur
aplikacijoje, o ToggleButton'as lieka disablintas.
Dar idomus dalykas yra, kad Wpf Combobox'e ToggleButton ClickMode yra
Press(nereiktu ToggleButton IsHitTestVisible priskirti false, kai
Popupas atidarytas), bet tada Popupas netekes focuso automatiskai
neuzsidaro(nezinau kodel).
Tai kaip reiketu atidaryti Popup'a?