2011-03-15 4 views
1

터치 장치에서 WPF 개발을 시작합니다. .NET과 WPF가 놀라운 기술 인 것 같지만 다소 길을 잃었습니다.WPF : 색상을 통합하는 Style ListBoxItem

일반 컨트롤을 개발 중입니다. 그리드, 일부 버튼 및 SurfaceListBox가 포함 된 UserControl을 정의했습니다. 실제 C# 코드에서는 이벤트를 처리하고 listItems-Attribute를 조작하여 목록 상자에 새 요소를 추가합니다. 지금까지 잘 작동합니다.

이제 목록 항목의 스타일을 변경하고 싶습니다. 선택하지 않으면 배경을 투명하게 만들고 싶은 경우 투명하게 만들고 싶습니다. 불행히도 다음 코드는 작동하지 않습니다. 그냥 목록 항목 의 배경색을 흰색으로 설정하지만 전체 항목은 설정하지 않습니다.

업데이트 : 이제 작동합니다!

<UserControl x:Class="SGEditor.MyControl" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     mc:Ignorable="d" 
     xmlns:my="http://schemas.microsoft.com/surface/2008" UseLayoutRounding="True"> 
<UserControl.Resources> 
    <Style TargetType="{x:Type ListBoxItem}" x:Key="ContainerStyle"> 
     <Setter Property="Background" Value="Transparent" /> 
     <Style.Triggers> 
      <Trigger Property="IsSelected" Value="True"> 
       <Setter Property="Background" Value="White" /> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 
</UserControl.Resources> 

<Grid>   
    <my:SurfaceListBox Width="300" Height="300" /> 
</Grid> 
</UserControl> 

고마워요!

한스

답변

1

당신이하고 싶은 일을하는 방법을 정확하게 모르겠지만, 난 당신이 x:Key에서 일을하려고있는 것처럼 정적 시스템 값을 다시 할당 할 수 없습니다 확신 해요. 그 이름은 나중에 MyBackgroundColor이나 뭐든간에 xaml에서 리소스를 참조하는 데 사용하는 이름입니다.

당신이해야 할 일은 변경하려는 요소에 적절한 속성을 설정하는 컨트롤 스타일의 트리거를 사용하는 것입니다. 내가 그 멋진 것들을 거의하지 않기 때문에 다른 누군가가 그것에 대해 더 많은 것을 밝힐 수 있기를 바랍니다. =)

+0

안녕하세요, 감사합니다. 내 질문 업데이트;) – HansSchild

+0

좋아, 알았어. 고마워 친구! – HansSchild

관련 문제