3

이것은 아마도 쉬운 것입니다 ... ContextMenu가 포함 된 목록 상자가 있고 ContextMenu가 나타날 때마다 Listbox의 배경이 불투명 한 검정색으로 바뀝니다. 어떻게 이런 일이 일어나지 않도록합니까? 상황에 맞는 메뉴가 나타날 때 전체 목록 상자가 검은 색가는 이유는 아직 파악되지 않은WP7 - 상황에 맞는 메뉴 강제 목록 상자에 검정색 배경

<ListBox x:Name="FolderItems" ItemTemplate="{StaticResource ItemTemplate}" ItemContainerStyle="{StaticResource ItemListBox}" SelectedItem="{Binding SelectedItem, Mode=TwoWay}" ItemsSource="{Binding FolderItems}"> 
    <toolkit:ContextMenuService.ContextMenu> 
     <toolkit:ContextMenu 
     x:Name="FolderContextMenu" 
     Margin="20" 
     Background="WhiteSmoke" 
     BorderBrush="Black" 
     BorderThickness="1.0" 
     Closed="ContextMenu_Closed"> 
       <toolkit:MenuItem Loaded="ContextMenuItem_Loaded" 
        Opacity="0.0" Margin="5" Background="Transparent" 
        Click="ContextMenuItem_Click" Name="ContextMenuDelete"> 
        <toolkit:MenuItem.Header> 
         <TextBlock Text="delete" FontFamily="Segoe WP Bold"/> 
        </toolkit:MenuItem.Header> 
       </toolkit:MenuItem> 
      </toolkit:ContextMenu> 
    </toolkit:ContextMenuService.ContextMenu> 
</ListBox> 

감사

업데이트 : 여기

는 일부 샘플 XAML입니다. 내가 생각할 수있는 모든 것을 투명 브러시로 설정했습니다.

+0

실제로는 목록 상자 배경을 설정하지 않았으므로 처음에는 검정색 (또는 테마에 따라 흰색)이되어서는 안됩니까? –

+0

제안 주셔서 감사하지만 목록 상자와 그 안에 포함 된 모든 항목에 투명한 배경을 적용 해 보았지만 검정색 배경은 여전히 ​​표시됩니다. 컨텍스트 메뉴에는 이러한 방식으로 대상에 영향을 줄 수있는 일종의 설정이 있습니까? – RyanM

+0

나는 이것을보고 "나는 이것을 썼습니까?"라고 생각했습니다. 현재 똑같은 문제가 있습니다. –

답변

2

툴킷을 열고 (소스 다운로드 : Silverlight Toolkit) 내 색상 값을 직접 편집하여 ContextMenu.cs으로 수정했습니다. 그런 다음 필자는 설치 프로그램의 DLL보다는 작성한 DLL을 다시 작성하고 대상을 지정했습니다.

유일한 문제는이 응용 프로그램을 구체적으로 수행해야하지만 적어도 해결할 수 있다는 것입니다. IsZoomEnabled = false을 설정하면 처음에는이 동작이 없지만 다른 환경에서는 작동합니다. 이 같은 라인 밖으로 Pastebin

확인, 그들은이 사람있어 변경해야합니다 :

여기 내 편집 된 버전의

// Create a layer for the element's background 
       UIElement elementBackground = new Rectangle 
       { 
        Width = ownerElement.ActualWidth, 
        Height = ownerElement.ActualHeight, 
        Fill = new SolidColorBrush(Colors.White), 
       }; 

행운을 빕니다!

+0

감사합니다. 트릭을해야합니다. 나는 툴킷을 편집하는 것에 대해 결코 생각하지 못했다. 멋진. – RyanM

0

사용중인 템플릿을 보지 않고서는 확실히 말할 수는 없지만 배경 값을 하드 코딩했지만 목록 항목의 여러 상태로 간주되지 않고 기본 상태 색상/값이 표시됩니다.

+0

Humm ... 목록 상자의 항목 컨테이너 스타일을 편집하고 각 상태에 대해 배경 브러시를 없음으로 설정하면 문제가 지속됩니다. 목록 상자에 하나의 요소 만있는 경우에도 길게 누른 상태에서 컨텍스트 메뉴가 나타나면 전체 목록 상자 배경이 검게 변합니다. – RyanM

1

간단한 방법이 있습니다. 어떤 이유로 MS Access는 목록 상자를 사용할 때 색상을 보완합니다. 전경을 빨간색으로 설정하면 녹색 등이 표시됩니다.

따라서 배경색을 검정색 (0)으로, 전경색을 흰색 (16777215)으로 설정하십시오. 카운터 직관적이지만 MS Access 2002가 작동합니다.