2009-06-17 65 views
0

我正在一個小的模擬時鐘項目學習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> 

更新:雖然提供的答案是正確的方向,但它們並不具體,而且它們只針對模擬時鐘的特定情況,與圍繞一個圓圈重複模式的整個範圍相反,我嘗試了來自第二個答案,它幾乎讓我想要的東西,但我仍然需要弄清楚如何得到小時/分鐘的指標,我一直在嘗試,我得到的線周圍的線,但不是我需要的模式;所以如果有人過來給我的具體答案,我會接受,否則,我會繼續努力,並會在這裏發佈答案

回答

0

你也可以使用路徑來完成相同的。查看Charles Petzold的「All Xaml Clock」。

<!-- 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的例子。

相關問題