Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何制作<;UIElement>;可交互或在WPF UI中单击可交互_C#_Wpf Controls_Richtextbox_Flowdocument_Uielement - Fatal编程技术网

C# 如何制作<;UIElement>;可交互或在WPF UI中单击可交互

C# 如何制作<;UIElement>;可交互或在WPF UI中单击可交互,c#,wpf-controls,richtextbox,flowdocument,uielement,C#,Wpf Controls,Richtextbox,Flowdocument,Uielement,这是我第一天使用WPF设计UI。我查阅了Flow document的MSDN官方文档,发现我可以在RichTextBox中放置一个UI控件。我确实放了一个按钮,但发现它不可交互-我不能点击它,因为它是灰色的。我还尝试了其他控件,它们都显示良好,但不支持交互。即使是超链接也不起作用 我在互联网上搜索过,问得最近的问题是如何使内部超链接可点击: 我也做了同样的事,但没有成功!所有组件显示良好,但无法单击 以下是我的XAML代码: 点击这个: http://www.jxitc.info 也点击这个

这是我第一天使用WPF设计UI。我查阅了Flow document的MSDN官方文档,发现我可以在RichTextBox中放置一个UI控件。我确实放了一个按钮,但发现它不可交互-我不能点击它,因为它是灰色的。我还尝试了其他控件,它们都显示良好,但不支持交互。即使是超链接也不起作用

我在互联网上搜索过,问得最近的问题是如何使内部超链接可点击:

我也做了同样的事,但没有成功!所有组件显示良好,但无法单击

以下是我的XAML代码:


点击这个:
http://www.jxitc.info
也点击这个
谁能给我一些建议: 1.有没有可能让它可以点击
2.如果是,如果我忘记设置RichTextBox控件的任何/什么属性?

首先回答您的直接问题:如何使RichTextBox的内容处于“活动”状态。将
RichTextBox
上的
IsDocumentEnabled
属性设置为True,如下所示:

   <RichTextBox Grid.Row="1" Margin="14.007,31.067,22.011,46.305" Name="rtxtRslt" BorderBrush="White" 
                    IsDocumentEnabled="True">
        <FlowDocument>
            <Section FontSize="15">
                <Paragraph>
                    <Bold>Click on this:</Bold>
                    <Italic>
                        <Hyperlink  NavigateUri="http://stackoverflow.com">http://www.jxitc.info</Hyperlink>
                    </Italic>

                </Paragraph>

                <BlockUIContainer>
                    <Button Click="Button_Click" >Also Click On This</Button>
                </BlockUIContainer>
            </Section>
        </FlowDocument>
    </RichTextBox>

点击这个:
http://www.jxitc.info
也点击这个
现在来问一个潜台词:你真的必须在RichTextBox中吗?RichTextBox上有一个特殊属性使嵌入的UI元素处于活动状态,这表明这不是该控件的正常用法。它用于承载可编辑的FlowDocument内容。因此,RichTextBox的用户通常会创建一个文档,其中包含一个按钮,文档的使用者可以单击该按钮,如果这有助于明确区分的话,我不知道。 但是,尽管如此,默认情况下,托管在简单FlowDocumentPageViewer中的FlowDocument处于活动状态

 <FlowDocumentPageViewer>
        <FlowDocument>
            <Section FontSize="15">
                <Paragraph>
                    <Bold>Click on this:</Bold>
                    <Italic>
                        <Hyperlink NavigateUri="http://stackoverflow.com">http://www.jxitc.info</Hyperlink>
                    </Italic>

                </Paragraph>

                <BlockUIContainer>
                    <Button Click="Button_Click" >Also Click On This</Button>
                </BlockUIContainer>
            </Section>
        </FlowDocument>

    </FlowDocumentPageViewer>

点击这个:
http://www.jxitc.info
也点击这个
现在是另一个未说出口的问题(无法说出口?)您是否必须在FlowDocument内容中?FlowDocument内容类似于,但不是从UIElement派生的。因此,UIElements的许多现成功能都不可用。如果您需要UI流程中的文档功能,文档可以提供一个很好的开端,但它本身就带来了一个相当大的学习曲线

你问题的标题,如果照字面理解的话,让我觉得你可能只是想要一个WPF UI,它允许你嵌入按钮和超链接并让它们工作(gasp)。这当然是默认行为。如果您不需要文档来查看FrutoD文档提供的文件,也不需要RICTICBOX提供的实时文档编辑,那么您可以考虑更传统的WPF布局。
 <StackPanel Orientation="Vertical" HorizontalAlignment="Stretch"
                Margin="20">
        <TextBlock>
                    <Bold>Click on this:</Bold>
                    <Italic>
                        <Hyperlink NavigateUri="http://stackoverflow.com">http://www.jxitc.info</Hyperlink>
                    </Italic>
        </TextBlock>
        <Button Click="Button_Click" 
                Margin="0,20,0,0">Also Click On This</Button>
    </StackPanel>

点击这个:
http://www.jxitc.info
也点击这个

哈哈!回答得好!你不仅解决了我的问题,而且还回答了真正的但没有说出口的问题!是的,问这个问题部分是因为我只想知道如何激活它。但除此之外,我打算做的是在表单中显示一个格式化的文本(忘记,我只关心超链接是否可以交互:D)。所以你的进一步建议解决了我的问题!谢谢!!你知道我可以在WPF中的某种“HTML查看器控件”中使用基本HTML,而不是使用这样复杂的流文档吗。
 <StackPanel Orientation="Vertical" HorizontalAlignment="Stretch"
                Margin="20">
        <TextBlock>
                    <Bold>Click on this:</Bold>
                    <Italic>
                        <Hyperlink NavigateUri="http://stackoverflow.com">http://www.jxitc.info</Hyperlink>
                    </Italic>
        </TextBlock>
        <Button Click="Button_Click" 
                Margin="0,20,0,0">Also Click On This</Button>
    </StackPanel>