2011-02-15 10 views
0

사용자가 텍스트 상자에 입력 할 때 특정 항목이 목록 상자에 나타나고 사용자가 거기에서 선택할 수있는 방식으로 목록 상자와 결합하려는 텍스트 상자가 있습니다. 내가 찾고있는 것은 AutoCompleteBox와 비슷한 동작이다. 안타깝게도 필자는 몇 가지 이유로 기존 프로젝트의 AutocompleBox를 사용할 수 없으므로 비슷한 문제가 발생할 가능성이 있습니다. 어떤 아이디어?WPF 부동 목록 상자

편집 : 해킹처럼 보이기 때문에 툴팁을 사용하지 않는 것이 좋습니다. 또한 목록 상자가 표시 될 때 컨트롤이나 다른 위치에서 레이아웃을 변경하면 안됩니다. 가능한 CSS 스타일 오버 플로우 같은 것이 있습니까?

답변

1

를 만들기 위해 작동합니다 좋아, "팝업"이 내가 찾고있는 것 같아. 그것의 자신의 몇 가지 단점을 가지고 있지만, 지금까지 잘 작동합니다. 나는 거의

<DockPanel> 
    <TextBox Text="{Binding Value}"/> 

    <Popup Name="popOptions" Width="300" Height="100" AllowsTransparency="True" StaysOpen="False"> 
     <ItemsControl ClipToBounds="False" Background="White" MouseLeftButtonUp="ItemsControl_MouseLeftButtonUp"> 
     <sys:String>ITEM ONE</sys:String> 
     <sys:String>ITEM TWO</sys:String> 
     <sys:String>ITEM THREE</sys:String> 
     </ItemsControl> 
    </Popup> 
</DockPanel> 

나는시기를 결정하기 위해 다른 컨트롤 이벤트를 캡처하고 .. 이런 식으로 사용, 때를 표시하지 않도록하고있다.

+0

팝업에 대해 염두에 두어야 할 점은 모든 응용 프로그램을 비롯하여 다른 응용 프로그램에도 그대로 유지된다는 것입니다. 이동하면 응용 프로그램과 함께 이동하지 않습니다. – Rachel

+0

이 문제는 'StaysOpen'플래그를 false로 설정하면 완화됩니다. 나는 그것을 포함하도록 내 대답을 편집했다. –

0

당신은 텍스트 상자의 도구 설명에서리스트 박스를 넣을 수

나는 당신이 달성하려고하는 일을하는 가장 좋은 방법인지 잘 모르겠지만, 그것은 떠있는 목록 상자

+0

예, 그렇지만 툴팁을 사용할 수 없습니다. 다른 방법이 없다면 아마이 길로 갈 것입니다. –

+0

ToolTip에는 ListBox 이외의 다른 컨트롤이 포함될 수 있습니다. 예를 들어 일반적인 툴팁과 ListBox가 포함 된 TextBlock을 보유 할 수 있습니다. – Rachel

+0

중첩 할 수 있는지 궁금합니다. 툴팁 - 툴팁 내부의 컨트롤에 툴팁이 있습니다. 나는 언젠가 그것을 시도해야 할 것이다. – Rachel