抑制对相邻元素的倾斜效应

时间:2012-03-30 23:14:54

标签: windows-phone-7

我有一个Listbox DataTemplate,看起来像这样

<DataTemplate> 
  <StackPanel Margin="0,24,0,24">
      <StackPanel toolkit:TiltEffect.IsTiltEnabled="true">
        <toolkit:ContextMenuService.ContextMenu>
           <toolkit:ContextMenu>
             <toolkit:MenuItem Header="Do something" />
             <toolkit:MenuItem Header="Do something else" />
           </toolkit:ContextMenu>
        </toolkit:ContextMenuService.ContextMenu>
        <TextBlock Text="Some content" />
        <TextBlock Text="Some text" />
    </StackPanel>
    <Image Source="{Binding Url}" />
  </StackPanel>
</DataTemplate>

我在StackPanel上设置了Tilt Effect,其中包含一个上下文菜单和两个TextBlocks。我希望Tilt Effect只影响StackPanel。不幸的是,通过这种方式设置的东西,倾斜效果进一步传播并影响图像。

我尝试了在图像上使用TiltEffect.SupressTilt =“True”的明显方法,但它没有任何效果。 :(

1 个答案:

答案 0 :(得分:1)

我对Silverlight工具包倾斜效果不满意,尤其是“基于类型”对元素进行“合理”应用的方式。所以我写了一个替代方案。您还可以配置要应用的“倾斜度”。源代码可以在这里找到:

Metro in Motion Part #4: Tilt Effect

使用此代码,您可以按如下方式单独对元素应用倾斜:

<Button local:MetroInMotion.Tilt="6"/> 

其中整数指定要应用的倾斜度。我建议使用相当低的值,原生效果非常微妙,但是人们倾向于在自己的Silverlight应用程序中使它太过极端,Metro效果应该是微妙的,它们不应该对你大喊大叫!