WPF RichTextBox - कस्टम नियंत्रण के साथ पाठ चयनित बदलें

वोट
2

इससे पहले कि मैं एक बहुत कच्चे तेल समाधान में हैकिंग शुरू, मैंने सोचा कि अगर किसी ने मुझे सही दिशा में एक छोटे से कुहनी से हलका धक्का दे सकता है मैं देखना चाहते हैं।

क्या मैं सच में करना चाहते हैं यदि कोई उपयोगकर्ता RichTextBox में कुछ पाठ का चयन एक बटन क्लिक करें, और एक कस्टम प्रदान की गई नियंत्रण में है कि पाठ बदलने देते है। एक बटन पाठ वे का चयन किया था, उदाहरण के लिए युक्त करने के लिए इसे बदलें।

27/08/2009 को 06:05
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


2 जवाब

वोट
2

आप कमान और CommandParameter साथ ऐसा कर सकते

सबसे पहले, एक ICommand करने के लिए बटन के लिए बाध्य है, जैसे:

<Button Content="Go" Command="{Binding MyCommand}" CommandParameter="{Binding ElementName=myRichTextBox, Path=Selection}" />
<RichTextBox Name="myRichTextBox" />

फिर अपने ViewModel या नियंत्रक या कोड-पीछे या जहां में, आप एक संपत्ति के रूप में ICommand का पर्दाफाश, और एक विधि के लिए यह बात की तरह है, काम करने के लिए ...

public ICommand MyCommand
{
    get
    {
        if (_queryCommand == null)
        {
            _queryCommand = new RelayCommand<TextSelection>(DoWork);
        }
        return _queryCommand;
    }
}

private void DoWork(TextSelection param)
{
    string selectedText = param.Text;

    // Build your control here...
    // probably put it in an ObservableCollection<Control> which is bound by an Items Control, like a ListBox
}

नोट: मैं जोश स्मिथ उत्तम से RelayCommand का इस्तेमाल किया है MVVM फाउंडेशन , लेकिन आप समान रूप से उदाहरण के लिए एक RoutedUICommand (जो अपने आदेश के लिए आप सहयोगी इनपुट इशारों दे के अतिरिक्त लाभ जोड़ना होगा) इस्तेमाल कर सकते हैं

27/08/2009 को 06:52
का स्रोत उपयोगकर्ता

वोट
0

आप कुछ कोड है कि अपने चयन लेता है और एक InlineUIContainer में यह लपेटता लिखने के लिए होगा - यानी कि कैसे आप एक रिच टेक्स्ट बॉक्स के अंदर नियंत्रण प्राप्त होते हैं:

<RichTextBox>
    <FlowDocument>
        <Paragraph>
            <Run>Fo</Run>
            <InlineUIContainer>
                <Button IsEnabled="True">oB</Button>
            </InlineUIContainer>
            <Run>ar</Run>
        </Paragraph>
    </FlowDocument>
</RichTextBox>
27/08/2009 को 10:36
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more