SL3:如何让路径“可选”以允许用户更改其样式?

时间:2009-11-05 20:44:17

标签: silverlight-3.0

我们使用System.Windows.Shapes.Path直观地连接应用程序中的元素 是否可以“选择”Path对象并为其提供焦点?我们希望允许用户更改任何Path对象的某些样式元素。

在我们的LeftMouseButtonDown处理程序中,我们检测到我们已经点击了Path对象,但接着是什么?我将一个GotFocus处理程序连接到Path对象,但它永远不会被调用。

我怀疑在Path对象周围需要一个容器.... 感谢您的任何见解。

2 个答案:

答案 0 :(得分:0)

您可能想要创建一个包裹Path元素的自定义控件。该路径是一个非常基本的图形基元,并没有像控件那样“聚焦”或“状态”的概念。

答案 1 :(得分:0)

如果您正在使用混合,您可以右键单击对象和时间轴部分中的路径并“进入控制”
选择简单的单选按钮,你可以添加故事板到视觉状态进行聚焦或检查等。
如果您没有混合,它为您的路径创建的代码将类似于以下内容。

 <Style x:Key="RadioButtonStyle1" TargetType="RadioButton">
  <Setter Property="Template">
    <Setter.Value>
      <ControlTemplate TargetType="RadioButton">
        <Grid>
          <VisualStateManager.VisualStateGroups>
            <VisualStateGroup x:Name="CommonStates">
              <VisualState x:Name="Pressed"/>
              <VisualState x:Name="Normal"/>
              <VisualState x:Name="MouseOver"/>
              <VisualState x:Name="Disabled"/>
            </VisualStateGroup>
              <VisualStateGroup x:Name="FocusStates">
              <VisualState x:Name="Focused"/>
              <VisualState x:Name="Unfocused"/>
            </VisualStateGroup>
            <VisualStateGroup x:Name="ValidationStates">
              <VisualState x:Name="Valid"/>
              <VisualState x:Name="InvalidFocused"/>
              <VisualState x:Name="InvalidUnfocused"/>
            </VisualStateGroup>
            <VisualStateGroup x:Name="CheckStates">
              <VisualState x:Name="Unchecked"/>
              <VisualState x:Name="Checked"/>
            <VisualState x:Name="Indeterminate"/>
            </VisualStateGroup>
          </VisualStateManager.VisualStateGroups>
          <Path />
      </Grid>
      </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>