【问题标题】:Best method to repeat a pattern declaratively以声明方式重复模式的最佳方法
【发布时间】:2009-06-17 03:10:46
【问题描述】:

我正在做一个小模拟时钟项目来学习Silverlight,显然在绘制钟面时有重复的图案,我看到的所有例子实际上都是重复xaml,只是改变角度以获得整个面,但我想知道是否有更好/更简单/更短的方法来以声明方式完成相同的结果(我知道如何以编程方式完成)

这就是我所拥有的,它在第二个 Canvas 之后重复,是唯一的不同角度

        <Canvas Width="100" Height="100" RenderTransformOrigin="0.5,0.5">
        <Rectangle Fill="Black" Width="6" Height="8" Canvas.Top="1" Canvas.Left="47" RenderTransformOrigin="0.5,0.5" />
    </Canvas>
    <Canvas Width="100" Height="100" RenderTransformOrigin="0.5,0.5">
        <Rectangle Fill="Black" Width="6" Height="8" Canvas.Top="1" Canvas.Left="47" RenderTransformOrigin="0.5,0.5" />
        <Canvas.RenderTransform>
            <RotateTransform Angle="30"/>
        </Canvas.RenderTransform>
    </Canvas>

更新:虽然提供的答案在正确的方向上,但它们并不具体,而且它们仅针对模拟时钟的特定场景,与围绕圆圈重复模式的整个范围相反,我尝试了代码从第二个答案,它几乎得到了我想要的东西,但我仍然需要弄清楚如何获得小时/分钟指标,我一直在尝试,我得到了圆圈周围的线条,但不是模式中的线条我需要;所以如果有人过来给我具体的答案,我会接受,否则,我会继续尝试并在此处发布答案

【问题讨论】:

    标签: silverlight silverlight-2.0


    【解决方案1】:

    您也可以使用 Path 来完成相同的操作。查看 Charles Petzold 的“所有 Xaml 时钟”。

    <!-- Tick marks (small and large). -->
    
    <Path Data="M 0 -90 A 90 90 0 1 1 -0.01 -90"
          StrokeDashArray="0 3.14157" />
    
    <Path Data="M 0 -90 A 90 90 0 1 1 -0.01 -90"
          StrokeDashArray="0 7.854"
          StrokeThickness="6" />
    

    来自http://www.charlespetzold.com/blog/2006/04/070132.html

    请注意,这是一个 WPF 示例。

    【讨论】:

      【解决方案2】:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-09-13
        • 2012-07-13
        • 1970-01-01
        • 1970-01-01
        • 2011-05-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多