Доступ к атрибутам элемента Xaml через Javascript

#javascript #silverlight #xaml

#javascript #silverlight #xaml

Вопрос:

(Опять же, вопрос Xaml. К сожалению, наш учитель не очень полезен …)

У меня есть следующие элементы в файле xaml:

 <TextBlock Style="{StaticResource TitleText}" x:Name="InformationGainTextBlock" />
<TextBlock Style="{StaticResource TitleText}" x:Name="NGramTextBlock" />
<TextBlock Style="{StaticResource TitleText}" x:Name="PositionTextBlock" />
  

У меня также есть 200 линейных элементов, содержащих данные, подобные этому:

 <Line Name="Data0" Stroke="Maroon" StrokeThickness="1" X1="154" Y1="123" X2="154" Y2="549" MouseEnter="onMouseEnter" MouseLeave="onMouseLeave" Tag="0.0427409|e l i j k|1" />
  

Теперь идея заключается в том, что в функции OnMouseEnter (в файле javascript) я извлекаю данные из атрибута «Tag» и помещаю их в виде текста в textblocks. В этом примере:

 0.0427409|e l i j k|1
  

Итак, я должен поместить ‘0.0427409’ в InformationGainTextBlock, ‘e l i j k’ в NGramTextBlock и ‘1’ в PositionTextBlock. Мне также нужно изменить цвет строки.

Как я могу это сделать? Я думаю, что у меня примерно правильный псевдокод, но не точная реализация:

 onMouseEnter(sender, args) {

var data = sender.getAttribute("Tag").Text;
var array[] = data.Split("|");

sender.getElementByName("InformationGainTextBlock").text = array[0];
sender.getElementByName("NGramTextBlock").text = array[1];
sender.getElementByName("PositionTextBlock").text = array[2];
sender.getAttribute("Stroke").text = "Red";
}
  

Событие onMouseLeave сбрасывает все.

Ответ №1:

Что-то вроде этого должно сработать:

 function onMouseEnter(sender, mouseEventArgs) {
  var text = sender["Tag"];
  var array = new Array();
  array = text.split("|");
  sender["Stroke"] = "Red";
  sender.findName("InformationGainTextBlock").text = array[0];
  sender.findName("NGramTextBlock").text = array[1];
  sender.findName("PositionTextBlock").text = array[2];
}
  

То, что у вас было, было очень близко 🙂