#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];
}
То, что у вас было, было очень близко 🙂