簡體   English   中英

將文本塊中的文本更改為MouseEnter上的斜體

[英]Changing text in textblock to italicized on MouseEnter

我有一個文本塊,其中包含一些非斜體文本。 當鼠標進入文本塊時,文本將通過使用后面的代碼來更改。 我希望后面的代碼也能夠將文本更改為斜體。 這是我到目前為止的內容:

XAML:

<TextBlock x:Name="block1"
   Background="Cyan"
   Foreground="{StaticResource myBrush2}"
   Grid.Column="0"
   Grid.Row="0"
   Height="30"
   HorizontalAlignment="Center"
   MouseEnter="TextBlock_MouseEnter"
   MouseLeave="TextBlock_MouseLeave"
   Padding="0,7,0,0"
   Text ="Hover Me!"
   TextAlignment="Center"
   Width="100"/>

背后的代碼(C#):

public void TextBlock_MouseEnter(object sender, MouseEventArgs e)
{
    string blockName = ((TextBlock)sender).Name;
    var block = sender as TextBlock;
    if (block != null && blockName == "block1")
    {
        block.Text = "Yo! I'm TextBlock1";
    }
}

我已經研究過使用System.Drawing和FontStyle.Italic; 盡管我沒有使它真正起作用。

這就是XAML目的

<TextBlock x:Name="block1"
   Background="Cyan"
   Foreground="{StaticResource myBrush2}"
   Grid.Column="0"
   Grid.Row="0"
   Height="30"
   HorizontalAlignment="Center"
   MouseEnter="TextBlock_MouseEnter"
   MouseLeave="TextBlock_MouseLeave"
   Padding="0,7,0,0"
   Text ="Hover Me!"
   TextAlignment="Center"
   Width="100">
            <TextBlock.Style>
            <Style TargetType="TextBlock">
                <Style.Triggers>
                    <Trigger Property="IsMouseOver" Value="True">
                        <Setter Property="FontStyle" Value="Italic" />
                    </Trigger>
                </Style.Triggers>
            </Style>
        </TextBlock.Style>
        </TextBlock>

但是,如果您確實願意,那么這里有一個示例,說明如何從代碼后方實現該功能。

private void block1_MouseEnter(object sender, MouseEventArgs e)
{
     SetFontStyle(FontStyles.Italic);
}

private void block1_MouseLeave(object sender, MouseEventArgs e)
{
     SetFontStyle(FontStyles.Normal);
}
private void SetFontStyle(FontStyle style)
{
     block1.FontStyle = style;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM