WPF RichTextBox - A kiválasztott szöveg a Egyéni vezérlő

szavazat
2

Mielőtt elkezdek hacker egy igazán nyers megoldás, azt gondoltam, hogy ha valaki tudna adni nekem egy kis lökéssel a helyes irányba.

Amit igazán akarok, hagyja, hogy egy felhasználó jelöljön ki szöveget egy RichTextBox, egy gombra, és átalakítani, hogy a szöveg egy egyéni renderelt ellenőrzés. Átalakítani, hogy egy gomb szövegét tartalmazó ők kiválasztott, például.

A kérdést 27/08/2009 06:05
a forrás felhasználó
Más nyelveken...                            


2 válasz

szavazat
2

Megteheti ezt a Command and CommandParameter

Először kötődnek a gombot egy ICommand, mint például:

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

Ezután a ViewModel vagy Controller vagy kód mögött, vagy bárhol, akkor tegye a ICommand mint a tulajdon, és pont ez a módszer, hogy azt a munkát, mint a ...

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
}

Megjegyzés: Én az RelayCommand Josh Smith kiváló MVVM Foundation , de ugyanígy használni RoutedUICommand például (ami növelné az extra haszon bérbeadása akkor társult input gesztusok a parancs)

Válaszolt 27/08/2009 06:52
a forrás felhasználó

szavazat
0

El kell írni egy kódot, amely veszi a kiválasztási és pakolások egy InlineUIContainer - így kapsz ellenőrzések belsejében gazdag mezőbe:

<RichTextBox>
    <FlowDocument>
        <Paragraph>
            <Run>Fo</Run>
            <InlineUIContainer>
                <Button IsEnabled="True">oB</Button>
            </InlineUIContainer>
            <Run>ar</Run>
        </Paragraph>
    </FlowDocument>
</RichTextBox>
Válaszolt 27/08/2009 10:36
a forrás felhasználó

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