60398


例えば

[code]

    qwer
    asdf
    zxcv
    
[/code]

と表示されているときに、qの位置でダブルクリックされたら0行目, dの位置でダブルクリックされたら1行目, などの情報を取得したいです。

LabelなどTextBlock風の見た目であればTextBlockでなくてもかまいません。ただし、行を跨いでドラッグした場合でもそれらが選択され、コピー可能である必要があります。


CC BY-SA 4.0
2019-11-11T01:50:07.300
60395
2019-11-11T02:29:09.837
20885
question
c# wpf
TextBlock内がダブルクリックされたときに、対応する行番号が知りたい


TextBoxをダブルクリックすると、`MouseButtonEvent`の前に単語が選択されるようで、これを利用して`SelectionStart`から逆算することが出来ました。

[code]

    void TextBox_MouseDoubleClick(object sender, MouseButtonEventArgs e)
    {
        int line = TextBox.Text.Substring(0, TextBox.SelectionStart).Split(new[] { Environment.NewLine, "\n", "\r" }, StringSplitOptions.None).Skip(1).Count();         
    }
    
[/code]


CC BY-SA 4.0
2019-11-11T02:29:09.837
60398
2019-11-11T02:29:09.837
20885
60395
answer