WinRT HubSection在悬停时更改字体

时间:2015-07-17 05:46:10

标签: winrt-xaml

我现在正在使用Visual Studio上的WinRT的Hub App模板,并需要有关样式的帮助。当我打开HubPage.xaml时,我看到Standard310x260ItemTemplate,它是一个网格,下面有一个图像和一些文本。它循环遍历SampleData.json文件中的所有项目。我可以更改文本和字体等。它似乎工作正常。我无法弄清楚当鼠标悬停在它上面时如何改变它。

    <DataTemplate x:Key="Standard310x260ItemTemplate">
        <Grid Height="250" Width="310" Margin="5,10,5,10">
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>
            <Border Background="{ThemeResource ListViewItemPlaceholderBackgroundThemeBrush}" Height="150">
                <Image Source="{Binding ImagePath}" Stretch="UniformToFill" AutomationProperties.Name="{Binding Title}"/>
            </Border>
            <StackPanel Grid.Row="1" Margin="0,10,0,0">
                <TextBlock Text="{Binding Title}" Style="{StaticResource TitleTextBlockStyle}" TextWrapping="NoWrap" Foreground="Red"/>
                <TextBlock Text="{Binding Lesson1_text1}" Style="{StaticResource BodyTextBlockStyle}" MaxHeight="60" />
            </StackPanel>
        </Grid>
    </DataTemplate>

默认情况下,它会更改文字的颜色,但我不知道代码的位置。我提出了代码片段,它基本上是模板附带的代码片段。我希望更改第二个TextBlock,以便在悬停时使用斜体字,而不是更改字体颜色。这可能非常简单,但我无法找到它的代码。

感谢您阅读本文!

1 个答案:

答案 0 :(得分:0)

我认为这样做的一个简单方法就是制作一个触发器。 您必须在风格BodyTextBlockStyle

中添加以下代码

这是一段代码:

<Style.Triggers>
    <Trigger Property="IsMouseOver" Value="True">                        
        <Setter Property="FontStyle" Value="Italic" />
    </Trigger>
</Style.Triggers>

另外,我建议您访问msdn并了解有关VisualStateManager

的一些信息