Silverlight: исправлена ​​ошибка при наведении на гиперссылку? - PullRequest
0 голосов
/ 12 марта 2012

При наведении курсора на кнопку HyperlinkButton в вертикальной панели StackPanel, элементы управления ниже кнопки HyperlinkButton на несколько пикселей ниже.Это какая-то странная ошибка, и я уверен, что есть исправление, но единственное обнаруженное мной исправление ошибки HyperlinkButton касается большого текста, рендеринга при размытии немного, а не этой ошибки позиционирования.Кто-нибудь сталкивался с этим?

XAML:

  <Canvas x:Name="LayoutRoot">
   ...
    <StackPanel x:Name="Article1" Style="{StaticResource ArticleContainer}"
                Canvas.Top="46">

        <StackPanel Orientation="Horizontal">
            <Image x:Name="Article1Image" Style="{StaticResource ImageCategory}"/>
            <TextBlock x:Name="Article1Title" Style="{StaticResource TitleText}"/>
        </StackPanel>

        <TextBlock x:Name="Article1Posted" Style="{StaticResource PostedText}"/>

        <HyperlinkButton x:Name="Author1Link" Style="{StaticResource HLBStyling}">
            <TextBlock x:Name="Article1By" Style="{StaticResource AuthorText}"/>
        </HyperlinkButton>

        <TextBlock x:Name="Article1Content" Style="{StaticResource ContentText}"/>

        <HyperlinkButton x:Name="Article1Link" Style="{StaticResource HLBStyling}">
            <TextBlock x:Name="Article1ReadMore" Style="{StaticResource ReadMoreText}"/>
        </HyperlinkButton>

    </StackPanel>
   ...
   </Canvas>

App.xaml:

    <Style x:Key="ContentPanel" TargetType="Border">
        <Setter Property="Height" Value="427"/>
        <Setter Property="Width" Value="250"/>
        <Setter Property="Canvas.Top" Value="33"/>
        <Setter Property="Canvas.Left" Value="0"/>
        <Setter Property="Canvas.ZIndex" Value="1"/>
    </Style>

    <Style x:Key="ArticleContainer" TargetType="StackPanel">
        <Setter Property="Height" Value="195"/>
        <Setter Property="Width" Value="230"/>
        <Setter Property="Canvas.Left" Value="10"/>
        <Setter Property="Canvas.ZIndex" Value="2"/>
    </Style>

    <Style x:Key="ImageCategory" TargetType="Image">
        <Setter Property="Width" Value="40"/>
        <Setter Property="Height" Value="40"/>
        <Setter Property="Margin" Value="5,5,5,0"/>
    </Style>

    <Style x:Key="TitleText" TargetType="TextBlock">
        <Setter Property="LineStackingStrategy" Value="BlockLineHeight"/>
        <Setter Property="FontSize" Value="14"/>
        <Setter Property="FontWeight" Value="SemiBold"/>
        <Setter Property="TextWrapping" Value="Wrap"/>
        <Setter Property="Height" Value="32"/>
        <Setter Property="Width" Value="170"/>
        <Setter Property="TextTrimming" Value="WordEllipsis"/>
        <Setter Property="Margin" Value="10,0,0,0"/>
    </Style>

    <Style x:Key="PostedText" TargetType="TextBlock">
        <Setter Property="FontSize" Value="12"/>
        <Setter Property="TextWrapping" Value="Wrap"/>
        <Setter Property="Height" Value="14"/>
        <Setter Property="Width" Value="230"/>
        <Setter Property="Margin" Value="0,10,0,0"/>
    </Style>

    <Style x:Key="AuthorText" TargetType="TextBlock">
        <Setter Property="FontSize" Value="12"/>
        <Setter Property="TextWrapping" Value="Wrap"/>
        <Setter Property="Height" Value="14"/>
        <Setter Property="Width" Value="230"/>
    </Style>

    <Style x:Key="ContentText" TargetType="TextBlock">
        <Setter Property="LineStackingStrategy" Value="BlockLineHeight"/>
        <Setter Property="FontSize" Value="12"/>
        <Setter Property="TextWrapping" Value="Wrap"/>
        <Setter Property="MaxHeight" Value="90"/>
        <Setter Property="Width" Value="230"/>
        <Setter Property="TextTrimming" Value="WordEllipsis"/>
    </Style>

    <Style x:Key="ReadMoreText" TargetType="TextBlock">
        <Setter Property="FontSize" Value="12"/>
        <Setter Property="Height" Value="16"/>
    </Style>

    <Style x:Key="HLBStyling" TargetType="HyperlinkButton">
        <Setter Property="BorderThickness" Value="0"/>
        <Setter Property="IsTabStop" Value="False"/>
    </Style>

1 Ответ

0 голосов
/ 13 марта 2012

Это вызвано тем, что вы используете два стиля для HyperLinkButton (HLBStyling) и содержащиеся в них текстовые блоки (AuthorText, ReadMoreText). Если вы удалите TextBlock и просто установите содержимое HyperLinkButton, проблема исчезнет. Также, если вы удалите стиль из TextBlocks внутри кнопок, проблема исчезнет.

...