Элементы, скрытые при добавлении в HyperLinkButton - PullRequest
1 голос
/ 17 января 2012

Элементы ниже отображаются нормально, когда их нет внутри кнопки Hyperlink.
Однако, когда я добавляю их в HyperlinkButton, они становятся невидимыми.

<DataTemplate>
    <HyperlinkButton NavigateUri="/ViewChallenge.aspx">
        <HyperlinkButton.Content>
            <StackPanel Orientation="Horizontal" Margin="0,0,0,17">
                <Image Height="100" Width="100" Source="{Binding Path=Challenge.Image}" Margin="12,0,9,0"/>
                <StackPanel Width="311">
                    <TextBlock Text="{Binding Path=Challenge.Title}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}"/>
                    <HyperlinkButton NavigateUri="ViewUser.aspx" >
                        <HyperlinkButton.Content>
                            <TextBlock Text="{Binding Path=User.Username}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextSubtleStyle}"/>
                        </HyperlinkButton.Content>
                    </HyperlinkButton>
                 </StackPanel>
             </StackPanel>
        </HyperlinkButton.Content>
    </HyperlinkButton>
</DataTemplate>

1 Ответ

2 голосов
/ 17 января 2012

Насколько я знаю, кнопка Гиперссылка поддерживает только текст.Например:

<HyperlinkButton Height="100" Width="300">
    Hello World
</HyperlinkButton>

Возможно, вам следует использовать элемент управления Button, установить шаблон элемента управления и ввести XAML, который вы упомянули выше, внутри.Это имеет больше смысла на мой взгляд.Попробуйте это:

<ControlTemplate x:Key="MyButtonTemplate" TargetType="Button">
         <StackPanel Orientation="Horizontal" Margin="0,0,0,17">      
            <Image Height="100" Width="100" Source="{Binding Path=Challenge.Image}" Margin="12,0,9,0"/>      
            <StackPanel Width="311">      
                <TextBlock Text="{Binding Path=Challenge.Title}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}"/>          
                <TextBlock Text="{Binding Path=User.Username}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextSubtleStyle}"/>      
             </StackPanel>      
         </StackPanel>   
</ControlTemplate>

И просто установите шаблон для вашей кнопки следующим образом:

<Button x:Name="myButton" Template="{StaticResource MyButtonTemplate}" Click="myButton_Click"/>

А затем выполните навигацию внутри события click.

...