문제

ListBoxItem을 선택했을 때 전경 색상을 변경하고 싶었고이 코드를 사용하여 수행했습니다.

<DataTrigger Binding="{Binding  
RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type ListBoxItem}},Path=IsSelected}" Value="True">
                            <Setter TargetName="descriptionTB" Property="Foreground" Value="#000"/>
</DataTrigger>

답을 찾을 수 있습니다 여기.

하지만 디자이너가 이것을하기를 원한다면 혼합하다, 그는 XAML로 드릴링하지 않고 어떻게 할 것인가?

고맙습니다

도움이 되었습니까?

해결책

아르투르,

Triggers Designer in Expression Blend는 이벤트 트리거 및 속성 트리거를 추가하고 수정할 수 있습니다. 블렌드와 함께 Datatriggers를 추가하는 방법을 찾지 못했습니다. 또한 블렌드를 사용하여 친척 구제 바인딩을 설정하는 방법을 잘 모르겠습니다. 나는 항상 테스트를 위해 XAML을 코드로 전달하고 다른 모든 것에 대해 블렌드를 사용했습니다.

다른 팁

어쩌면 나는 질문을 오해하고 있지만 DescriptionTB에 대한 스타일 리소스를 만들고 디자이너가 바인딩이 아닌 스타일 정의 만 다루게 할 수 없습니까?

<DataTrigger Binding="..">
    <Setter TargetName="descriptionTB" Property="Style" Value="{StaticResource DescriptionTextBoxStyle}" />
</DataTrigger>

제어 또는 창의 리소스 섹션에서 스타일 정의를 추가합니다.

<Style TargetType="{x:Type TextBox}" x:Key="DescriptionTextBoxStyle">
    <Setter Property="Foreground" Value="#000" />
</Style>

UI의 메커니즘에서 디자이너를 더 격리하려면 디자이너를위한 모든 스타일을 수집 할 수있는 별도의 XAML 파일로 리소스 사전을 만들 수 있습니다. 그런 다음 해당 리소스 사전을 컨트롤 또는 응용 프로그램의 주요 리소스와 병합 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top