2016-05-14 4 views
0

Я пытаюсь сделать usercomponent, который позволит вам щелкнуть по слову внутри TextBlock и изменить его. Мне удалось сделать слова интерактивными и определить, какое слово я нажал. Но мне также нужно знать координаты, где произошел щелчок.Получение точки (X, Y), где нажата на гиперссылку в TextBlock

Мой код:

<UserControl 
x:Class="wordedit.EditableTextBlock" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:local="using:wordedit" 
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
mc:Ignorable="d" 
d:DesignHeight="300" 
d:DesignWidth="400"> 
    <Grid Name="grid"> 
    <TextBlock Margin="0" Padding="0" LineStackingStrategy="BaselineToBaseline" TextLineBounds="Full" TextWrapping="WrapWholeWords" Name="textBlock"> 
    </TextBlock> 
</Grid> 
</UserControl> 

С # код: как РМКО построения Инлайн из TextBlock

  Run r = new Run(); 
      r.Text = words[i]; 
      Hyperlink l = new Hyperlink(); 
      l.Click += L_Click; 
      l.Inlines.Add(r); 
      textBlock.Inlines.Add(l); 

    private void L_Click(Hyperlink sender, HyperlinkClickEventArgs args) 
    { // doing some user response here 

    } 

Поскольку Клик аргументы не дают никакой информации вообще и даже не позволяет мне установить Handled к ложному. Это означает, что сам текстовый блок не запускает событие Tapped.

Есть ли способ, чтобы просто получить координаты? Спасибо !

EDIT: Другие мои мысли. Я могу легко получить X, Y из события Tapped. Так можно ли поставить прозрачный элемент перед текстовым блоком в качестве невидимого холста и обработать событие и передать его через элемент под ним?

ответ

0

Хорошо, я решил, что решил это с помощью события PointerReleased на сетке. Как-то это событие работает.

 private void Grid_PointerReleased(object sender, PointerRoutedEventArgs e) 
     { 
     var point = e.GetCurrentPoint(grid); 
     } 

 Смежные вопросы

  • Нет связанных вопросов^_^