2017-07-25 39 views
1

正如您可以在標題中看到的,雖然您可以設置不透明度,但我無法在SciChart中設置AxisMarker的可見性屬性。SciChart無法在AxisMarker上設置可見性

這將是類

<s:AxisMarkerAnnotation x:Class="PT.Modules.Infrastructure.CustomAxisMarker" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="http://schemas.abtsoftware.co.uk/scichart" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:local="clr-namespace:PT.Modules.Infrastructure" xmlns:progSettingServ="clr-namespace:PT.ProgramSettingsService;assembly=PT.ProgramSettingsService" 
    mc:Ignorable="d" Background="{Binding BackgroundColor}" LabelTemplate="{DynamicResource AxisMarkerTemplate}" 
    VerticalAnchorPoint="{Binding VerticalAnchor}" HorizontalAnchorPoint="{Binding HorizontalAnchor}" RenderTransformOrigin="{Binding RenderOrigin}" 
    AnnotationCanvas="AboveChart" X1="{Binding X1}" Y1="{Binding Y1}" X2="{Binding X2}" Y2="{Binding Y2}" IsHitTestVisible="False" d:DesignHeight="300" 
    d:DesignWidth="300" Focusable="False" HorizontalAlignment="Right"> 
<s:AxisMarkerAnnotation.Resources> 

AxisMarker風格

<s:AxisMarkerAnnotation.Style> 
    <Style TargetType="{x:Type s:AxisMarkerAnnotation}"> 
     <!--works--> 
     <Setter Property="Opacity" Value="0"/> 
     <!--won't work--> 
     <Setter Property="Visibility" Value="Hidden"/> 
     <Style.Triggers> 
      <DataTrigger Binding="{Binding CanChange, UpdateSourceTrigger=PropertyChanged}" Value="True"> 
       <DataTrigger.EnterActions> 
        <BeginStoryboard> 
         <Storyboard> 
          <DoubleAnimation Storyboard.TargetProperty="(Border.Opacity)" From="1" To="0" Duration="0:0:0.75" AutoReverse="True" 
            RepeatBehavior="5x" /> 
         </Storyboard> 
        </BeginStoryboard> 
       </DataTrigger.EnterActions> 
       <DataTrigger.ExitActions> 
        <BeginStoryboard> 
         <Storyboard> 
          <DoubleAnimation Storyboard.TargetProperty="Opacity" To="1.0" Duration="0:0:0" /> 
         </Storyboard> 
        </BeginStoryboard> 
       </DataTrigger.ExitActions> 
      </DataTrigger> 
      <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType={x:Type s:AxisMarkerAnnotation}},Path=DataContext.ProgramSettings.ChartSettings.Orientation, UpdateSourceTrigger=PropertyChanged}" 
         Value="{x:Static progSettingServ:TouchMode.Wide}"> 
       <Setter Property="Opacity" Value="1" /> 
      </DataTrigger> 
     </Style.Triggers> 
    </Style> 
</s:AxisMarkerAnnotation.Style> 

回答

1

設置是否隱藏屬性,而不是visibility屬性將工作!

+1

是的,這是一個已知的問題 - SciChart API在內部使用Visibility來隱藏元素,所以使用AnnotationBase.IsHidden來觸發可見性。有關此背後的完整推理,請參閱https://www.scichart.com/questions/question/annotations-visibility-bug –

+0

非常感謝! – VyoriX