2010-01-17 3 views
1

WPF 앱에서 사용자 정의 컨트롤이 있습니다. 이 사용자 지정 컨트롤에서 파생 된 개체에 대한 도구 설명은이 사용자 지정 컨트롤의 특성 중 하나의 값에 따라 다릅니다.WPF 사용자 지정 컨트롤의 컨트롤 템플릿에 툴팁 텍스트 (비 라틴 문자 포함)를 할당 할 수 있습니까?

이 사용자 지정 컨트롤의 컨트롤 템플릿에서 선언 할 수 있습니까? 같은

뭔가 (추가)

<ControlTemplate> 
??? // <!--XAML ToolTip declaration --> 
... 
<ControlTemplate.Triggers>      
    <Trigger Property="MyProperty" Value="FirstValue"> 
    <Setter ...??? /> // <!--XAML ToolTip text assignment --> 
    </Trigger> 
    ... 
    <Trigger Property="MyProperty" Value="SecondValue"> 
    <Setter ...??? /> // <!--XAML ToolTip text assignment --> 
    </Trigger> 
</ControlTemplate.Triggers> 
</ControlTemplate> 

편집 : 나는 해결책을 발견

: 그것은 훌륭한 노력하고 있습니다

<MultiTrigger> 
    <MultiTrigger.Conditions> 
     <Condition Property="IsMouseOver" Value="True" /> 
     <Condition Property="MyProperty" Value="FirstValue" /> 
    </MultiTrigger.Conditions> 
    <Setter TargetName="PART_Backgr" Property="ToolTip" Value="Available"/> 
    </MultiTrigger> 

    <MultiTrigger> 
    <MultiTrigger.Conditions> 
     <Condition Property="IsMouseOver" Value="True" /> 
     <Condition Property="MyProperty" Value="SecondValue" /> 
    </MultiTrigger.Conditions> 
    <Setter TargetName="PART_Backgr" Property="ToolTip" Value="Sold"/> 
    </MultiTrigger> 

. 하지만 한 가지 문제가 남아 있습니다. 사실 Value="Available" 등의 값에는 비 라틴 문자가 포함되어야합니다 (응용 프로그램은 러시아어로 현지화되어 있음). Value="Свободно"으로 컴파일하려고하면 오류가 발생합니다 : '지정된 인코딩에 잘못된 문자가 있습니다.' XML이 유효하지 않습니다.

이 문제의 해결책은 무엇입니까? 어쩌면 내가 Generic.xaml 페이지를 컴파일하는 인코딩을 변경할 수 있을까? XAML 코드를 어떻게 든 변경 하시겠습니까? (실제로 모든 창에는 XAML에 비 라틴 문자가 많이 포함되어 있지만 모든 것이 정상적으로 컴파일되지만 문제는 사용 방법에 있습니다.)

+0

업데이트 된 답변보기,

+0

을 사용할 때 오류가 발생하지 않습니다. 감사합니다. 제발, 내 새로운 의견을 귀하의 게시물을 참조하십시오 – rem

답변

2

이 방법이 효과가 없습니까? 시도하고 다른 문제, 특별한 변경없이 나를 위해 다음과 같은 일을 해결하기 위해

<ControlTemplate.Triggers>      
    <Trigger Property="MyProperty" Value="FirstValue"> 
     <Setter Property="ToolTip" Value="..."/> 
    </Trigger> 
</ControlTempalte.Triggers> 

는 :

<TextBlock Text="Свободно" ToolTip="Свободно"/> 

나는 복사 내 XAML 코드로 귀하의 질문에서 해당 텍스트를 붙여 넣습니다.

+0

Aviad, 고마워요! 사실, 내가 타이핑하는 동안 당신은 당신의 글을 올렸습니다. 거의 비슷합니다. 제발, 내 새로운 문제를 (업데이트 된 질문) 봐 - 어쩌면 당신도 나를 도울 수 있습니다. – rem

+0

그리고 당신의 제안은 괜찮습니다. +1 – rem

+0

네, 나에게도 효과가 있습니다. 하지만 당신이 제안하고 일반적인 wpf 윈도우의 xaml에서와 같은 정확한 방법으로. ControlTemplate xaml (Generic.xaml 윈도우)의 Setter 태그에 Property = "ToolTip"Value = "Свободно"를 사용하려고하면이 오류가 발생합니다. – rem