C# 需要在引用某个特性时将其绑定到样式中

C# 需要在引用某个特性时将其绑定到样式中,c#,wpf,xaml,C#,Wpf,Xaml,我使用的样式包含几个元素,但我将在这里的示例代码中仅显示水平线。尚未定义该行的StrokeDashArray <Style x:Key="YAxisTitleStyle" TargetType="s:AxisTitle"> <Setter Property="ContentTemplate"> <Setter.Value> <DataTemplate>

我使用的样式包含几个元素,但我将在这里的示例代码中仅显示水平线。尚未定义该行的StrokeDashArray

    <Style x:Key="YAxisTitleStyle" TargetType="s:AxisTitle">
        <Setter Property="ContentTemplate">
            <Setter.Value>
                <DataTemplate>
                    <Grid>
                        <Line X2="{Binding ActualWidth, RelativeSource={RelativeSource Self}}"
                              Stroke="{Binding Path=BorderBrush, RelativeSource={RelativeSource AncestorType={x:Type s:YAxis}}}"
                              StrokeThickness="2"
                              StrokeDashArray=""/>
                    </Grid>
                </DataTemplate>
            </Setter.Value>
        </Setter>
    </Style>

我想在使用样式的点上定义StrokeDashArray

                <YAxis TitleStyle="{StaticResource YAxisTitleStyle}"
                      BorderBrush="{Binding ElementName=HResitivitySeries, Path=SeriesColor, Converter={StaticResource ColorToBrushConverter}}"/>


我需要以某种方式将样式中的行的StrokeDashArray绑定到HResistvitySeries的StrokeDashArray属性。我不知道如何做这个绑定,或者它是否可能。为了同步颜色,我可以从YAxis的BorderBrush中提取线条的笔划,但是YAxis没有与StrokeDashArray等效的属性,并且HResistivitySeries不是YAxis的祖先。

如果
s:AxisTitle
是您自己的对象,向其添加类型为
DoubleCollection
的DependencyProperty(或者如果它不是您自己的对象,请尽可能扩展它)。然后在样式中,您可以执行
StrokeDashArray=“{TemplateBinding MyStrokeDashArrayDependencyProperty}”
。然后,您可以创建基于您的YaxistItList样式的多个其他样式,并且只有MyStrokeDashArrayDependencyProperty的Setter。或者,如果您不想创建多个样式,那么可以执行类似以下操作:
StrokeDashArray={Binding RelativeSource={RelativeSource Mode=FindAncestor,antestortype={x:Type s:axisttitle}},Path=MyStrokeDashArrayDependencyProperty}
然后只要在使用样式时更新MyStrokeDashArrayDependencyProperty即可。

存在多少种颜色组合?是只有两种颜色,还是(在本例中)
Stroke
s的颜色更多?StrokeDashArray实际上依赖于什么?是否在
YAxis
元素中静态声明?还是依赖于其他物体?YAxis的
类型是什么?你能给它加一个属性吗?请证明这充分说明了问题。这似乎是一个合理的建议。该对象不是我的,我正在使用SciChart图形库。我已经扩展了他们的一些类,以获得一些特殊的行为,效果很好。从您的回答中,我可以看出我没有遗漏任何特殊的XAML魔法,因此您的回答似乎是最好的选择。