Установите значение TextBox внутри HyperlinkButton.Content в .cs - PullRequest
0 голосов
/ 22 января 2012

В настоящее время у меня есть гиперссылка:

<HyperlinkButton 
   Name="HyperLinkNav" 
   FontSize="24"
   HorizontalContentAlignment="Left" Foreground="White">
       <HyperlinkButton.Content>test</HyperlinkButton.Content>
 </HyperlinkButton>

И в моем коде я получил:

HyperLinkNav.Content = "Please select a link";

Что устанавливает для контента <HyperlinkButton> значение «Пожалуйста, выберите ссылку».

Я хотел бы изменить шаблон <HyperlinkButton> на TextBox, примерно так:

<Border Background="{TemplateBinding Background}" Margin="{StaticResource PhoneHorizontalMargin}" Padding="{TemplateBinding Padding}">  
                        <!--<TextBlock x:Name="TextElement" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Text="{TemplateBinding Content}" TextDecorations="Underline" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>--> 
                        <ContentPresenter x:Name="TextElement" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>  
                    </Border> 

Это позволит мне добавить TextBox к кнопке HyperlinkButton:

 <HyperlinkButton.Content> 
        <StackPanel Orientation="Horizontal">  
            <TextBlock Text="Next Page"/>  
            <Image Source="SampleImageResource.jpg" Width="50" Height="50"/>  
        </StackPanel> 
 </HyperlinkButton.Content> 

Однако мне нужно обновить код, чтобы вместо обновления <HyperlinkButton>.Content он обновил TextBlock.

Есть идеи у кого-нибудь?

Ответы [ 2 ]

0 голосов
/ 22 января 2012

Примерно так должно работать на вас:

<TextBlock x:Name="TB" Text="{Binding RelativeSource= {RelativeSource FindAncestor, 
        AncestorType={x:Type HyperlinkButton}}, Path=TargetName} ... />

На практике вы связываете его Text с первым найденным предком типа HyperlinkButton TargetName. Таким образом, вы должны иметь возможность продолжать кодировать, как это

HyperLinkNav.TargetName= "Please select a link";
0 голосов
/ 22 января 2012

Вы можете попробовать:

<HyperlinkButton.Content> 
    <StackPanel Orientation="Horizontal">  
        <TextBlock x:Name="TB" Text="Next Page"/>  
        <Image Source="SampleImageResource.jpg" Width="50" Height="50"/>  
    </StackPanel> 
</HyperlinkButton.Content> 

и в коде позади:

TB.Text = "Please select a link";

Я не уверен, что это то, что вы хотите. Я пытался ответить на то, что я понял из вопроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...