Кнопка ссылки на WPF

#wpf-controls

#wpf-элементы управления

Вопрос:

У меня есть элемент управления кнопкой, к которому я хочу добавить изображение, а также свойство гиперссылки, то есть это должна быть кнопка изображения со ссылкой на другой источник. Я пытался

 <Button Click="OnNavigationRequest"  ToolTip="Orkut">
  <Image Source="C:Documents and SettingsSaurabhSMy DocumentsVisual Studio 2008   ProjectsSaurabhSinhaDemosWPF_ZoneAddressBookAddressBookimagesorkut.jpeg"/>
  <Hyperlink NavigateUri="http://www.orkut.com">Orkut</Hyperlink>
</Button>
  

и в коде за:

  AddHandler(Hyperlink.RequestNavigateEvent, 
            new RoutedEventHandler(OnNavigationRequest));

 public void OnNavigationRequest(object sender, RoutedEventArgs e)
      {
          var source = e.OriginalSource as Hyperlink;
          if (source != null)
              Process.Start(source.NavigateUri.ToString());
      }
  

Но получил следующую ошибку:

содержимое устанавливается более одного раза…

Как я должен это сделать?

Комментарии:

1. Вы не предоставили нам полный код XAML. В сообщении об ошибке, которое вы цитируете, говорится, что в вашем коде XAML имеется ошибка, из-за которой в элементе имеется более одного дочернего элемента, который может принимать только один дочерний элемент. Пожалуйста, опубликуйте полный код XAML.

Ответ №1:

В вашем коде Button элемент содержит два дочерних элемента. Button Элемент может принимать только один дочерний элемент.

Оберните Image и Hyperlink в StackPanel или какой-либо другой контейнер макета, и ошибка исчезнет (см. Пример ответа Int3).

Ответ №2:

Попробуйте выполнить следующее

   <Button>
     <StackPanel Orientation="Horizantal">
       <Image Source="path to the image"/>
       <Hyperlink NavigateUri="http://www.orkut.com"/>
     </StackPanel>
  </Button>