Tengo una clase derivada del control deslizante que usa una plantilla de control personalizada y tiene algunas propiedades de dependencia agregadas. Me gustaría disparar activadores dentro de la plantilla en función de las nuevas propiedades.Cómo usar propiedades personalizadas en un activador ControlTemplate
Por ejemplo, tengo una nueva propiedad de dependencia llamada ThumbIsVisible que cuando se establece en falso, quiero que la parte del control deslizante de mi control deslizante sea hiddin. Mi plantilla de control se ve así:
<Slider.Template>
<ControlTemplate TargetType="{x:Type Slider}">
...
<Track.Thumb>
<Thumb x:Name="m_Thumb" Style="{StaticResource SliderThumbStyle}" />
...
me gustaría añadir en un disparador que se parece a:
<ControlTempate.Trigger>
<Trigger Property="ThumbIsVisible" Value="False">
<Setter TargetName="m_Thumb" Property="Visibility" Value="Collapsed" />
De buenas a primeras Puedo ver que esto no va a funcionar como tengo la década de tempate de control Tipo de objetivo establecido en Control deslizante. Sin embargo, si cambio eso para decir:
<ControlTemplate TargetType="{x:Type local:myCustomSlider}">
entonces me encuentro con problemas con el tipo de plantilla que difiere de los controles. La única forma de evitar esto es crear el xaml usando el local: myCustomSlider como tipo en lugar de Slider. Sin embargo, hacer esto causa muchos problemas con el diseñador y el código de VisualStudio.
¿Alguien sabe si hay una forma estándar de evitar todo esto? Como solución, intenté agregar los desencadenadores de la plantilla a través de código subyacente, pero no he podido lograr que funcionen.
Agregue la solución como respuesta y acéptela para que no se quede sin respuesta. – kevev22
Lo haré en cuanto alcance la reputación de 100 o mi límite de respuestas automáticas de novatos de 8 horas habrá terminado. – BruceLH