2016-07-25 4 views
0

일부 기울임 꼴이 아닌 텍스트가 포함 된 텍스트 블록이 있습니다. 마우스가 텍스트 블록에 들어가면 텍스트는 뒤의 코드 사용을 통해 바뀝니다. 나는 뒤에있는 코드에서 텍스트를 기울임 꼴로 변경할 수있는 기능을 원한다. 이것은 내가 지금까지 무엇을 가지고 :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#을) : 나는 System.Drawing 및 FontStyle.Italic의 사용을 사용으로 보았다

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"; 
    } 
} 

; 실제로 작동하게 만들지 못했지만

+1

정말 스타일과 트리거를 사용해야합니다. –

답변

1

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; 
} 
+0

답장을 보내 주셔서 감사합니다! 이 시나리오를 위해 코드를 사용하는 것이 나쁜 습관임을 압니다. 나는 스타일과 트리거 (엄격하게 코드 뒤에)를 사용하지 않고 이것을 구현할 수있는 방법이 있는지 궁금하다. – user5890660

+0

답변을 업데이트했습니다. – Jace

+0

감사합니다. 완벽하게 작동합니다! – user5890660