Невозможно назначить геометрию свойству Button clip - PullRequest
2 голосов
/ 26 июля 2010

Я работаю над интерактивной картой. Я использую Silverlight 4 в VisualStudio 2010. Моя проблема в том, что я не могу присвоить геометрию свойству Button Clip:

Код:

bouton1.Clip = (PathGeometry)Forme.Data;
//forme is a class that inherits from Path

при запуске приложения я получаю ArgumentException:

Значение не входит в ожидаемый диапазон

Ответы [ 2 ]

1 голос
/ 26 июля 2010

Ваша Path, называемая "Forme", имеет свою геометрию, определенную с помощью мини-языка Path, верно?

Этот тип геометрии не может совместно использоваться несколькими элементами.

Обходной путьсохранить данные пути в виде строки в ResourceDictionary, доступном как для вашего элемента «Forme», так и для «bouton1», а затем назначить их с помощью StaticResource.Что-то вроде: -

<StackPanel>
  <StackPanel.Resources>
    <sys:String x:Key="MyPath">M 10,100 C 10,300 300,-200 300,100</sys:String>
  </StackPanel.Resources>
  <Button x:Name="btn"  Content="Button" Height="150" Clip="{StaticResource MyPath}" />
  <Path Data="{StaticResource MyPath}" Stroke="Black" StrokeThickness="2"  />
</StackPanel>

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

0 голосов
/ 27 июля 2011

Я изменил кнопку с событием Path и MouseLeftButtonDown, все работает :)

...