小编Dav*_*mer的帖子

对 FormattedText 执行命中测试的好方法是什么?

我正在使用 渲染文本FormattedText,但似乎确实有任何方法可以对渲染的输出执行每个字符的命中测试。它是只读的,所以我基本上只需要选择,不需要编辑。

我会使用RichTextBox或类似的,但我需要根据嵌入文本本身的控制代码输出文本,因此它们并不总是嵌套,这使得构建正确的内联元素非常复杂。我也有点担心该解决方案的性能;我有大量的行,并且经常添加新行。

我看过GlyphRun,看来我可以从它或相关的类中进行命中测试,但我会重新实现很多功能,而且似乎应该有一种更简单的方法......

有谁知道实现这个的好方法?

c# wpf text hittest

1
推荐指数
1
解决办法
1303
查看次数

在动画完成时删除 FrameworkElements

我一直在通过 Sells/Griffiths 的“Programming WPF”自学 WPF,我发现它是一个很好的资源,但我正在尝试采用他们向我介绍的一些概念并更进一步,我遇到了一个关于如何将各个部分组合在一起以完成我正在尝试做的事情的概念障碍。

在本练习中,我尝试创建自终止动画;FrameworkElement由 Events 创建的 s,执行动画,然后删除自身。我在弄清楚如何FrameworkElement从 animation.Completed 事件回调到父级时遇到问题。

我问这个问题最初只是使用未包含的DoubleAnimations 而不是Storyboard. 我已经添加了Storyboard, 并制作了Storyboard和 矩形资源,以便它们可以轻松重用。

这是我到目前为止所拥有的:
.xaml:

<Window.Resources>
    <Storyboard x:Key="GrowSquare" x:Shared="False">
        <DoubleAnimation Storyboard.TargetProperty="(Canvas.Top)" By="-50" Duration="0:0:2"/>
        <DoubleAnimation Storyboard.TargetProperty="(Canvas.Left)" By="-50" Duration="0:0:2"/>
        <DoubleAnimation Storyboard.TargetProperty="(Ellipse.Width)" By="100" Duration="0:0:2"/>
        <DoubleAnimation Storyboard.TargetProperty="(Ellipse.Height)" By="100" Duration="0:0:2"/>
    </Storyboard>
    <Rectangle x:Key="MyRect" x:Shared="False" Width="20" Height="20">
    </Rectangle>
</Window.Resources>
<Canvas x:Name="myCanvas" MouseMove="myCanvas_MouseMove" Background="White"/>
Run Code Online (Sandbox Code Playgroud)

。CS:

public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
            lastFire = DateTime.Now;
        }

        DateTime lastFire; …
Run Code Online (Sandbox Code Playgroud)

c# wpf animation storyboard frameworkelement

1
推荐指数
1
解决办法
1591
查看次数

滚动查看模式下的FlowDocumentReader滚动条可见性

我需要显示带有字体大小滑块和搜索按钮的FlowDocument.Scroll查看模式下的FlowDocumentReader正是我想要的,除了它总是显示垂直滚动条,而我只需要在它启用时显示它(内部ReaderScrollViewer的VerticalScrollBarVisibility是可见的,但我需要自动).我怎样才能实现这样的观点?

谢谢.

wpf scroll flowdocument

1
推荐指数
1
解决办法
2518
查看次数

通过更改窗口模板,所有控件都消失了

我想更改我的窗口模板,例如:

<Style x:Key="SilverGreenWindowStyle" TargetType="{x:Type Window}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate>
                <Grid Background="{StaticResource SilverGreenBackground}" Width="503" Height="383">
                    <Rectangle Margin="192,86,21,119" Fill="{StaticResource SilverGreenRectangleBackground}" Width="200" Height="200"/>
                </Grid>    
            </ControlTemplate>
        </Setter.Value>    
    </Setter>
</Style>
Run Code Online (Sandbox Code Playgroud)

这会导致Windows控件变得不可见.如何让它们可见?

.net c# wpf controltemplate

1
推荐指数
1
解决办法
149
查看次数

如何将此TextBlock淡入触发器转换为样式

此XAML使文本在显示时淡入.

我想把这个功能放到Style中.

但是,但是我为"TargetName"添加了什么,因为样式不知道哪个元素将使用它?

如何将此淡入效果转换为样式?

<TextBlock Name="Message" Text="This is a test.">
  <TextBlock.Triggers>
    <EventTrigger RoutedEvent="TextBlock.Loaded">
      <BeginStoryboard>
        <Storyboard>
          <DoubleAnimation
            Storyboard.TargetName="Message" 
            Storyboard.TargetProperty="(TextBlock.Opacity)"
            From="0.0" To="1.0" Duration="0:0:3"/>
        </Storyboard>
      </BeginStoryboard>
    </EventTrigger>
  </TextBlock.Triggers>
</TextBlock>
Run Code Online (Sandbox Code Playgroud)

wpf xaml styles textblock

1
推荐指数
1
解决办法
1828
查看次数

在WPF中打开一个新窗口

当我点击我的wpf应用程序中的按钮时,我想打开一个带有特定网址的新浏览器窗口(例如http://google.com ").怎么做?

browser wpf window

1
推荐指数
1
解决办法
3120
查看次数

WPF中TextBox焦点的问题

我想将重点放在TextBoxWPF中的自定义文档内容中.我将所有可聚焦参数设置为true.不过,重点不在于TextBox.有什么想法或评论吗?

到目前为止,我添加了以下内容:

textbox.Focus();
textbox.SelectAll();
Run Code Online (Sandbox Code Playgroud)

到我的WPF页面的构造函数.

TextBox是在Canvas里面DockPanel,而且个个都是的一部分custom:DocumentContent.

先感谢您,

c# wpf textbox focus

1
推荐指数
1
解决办法
5637
查看次数

我可以在WPF中动态切换样式吗?

假设我想展示一些Button和几个RadioButtons.根据RadioButton选择的内容,我想对我的应用采用不同的风格Button.这可能在WPF中吗?

.net wpf styles

1
推荐指数
2
解决办法
6498
查看次数

WPF依赖属性返回值

我是WPF的新手.

假设我定义了一个int依赖属性.DP的目的是返回值+ 1(参见代码).在.Net 2.0中我会写:

private int _myValue = 0;
    public int MyValue
    {
        get { return _myValue + 1; }
        set { _myValue = value; }
    }
Run Code Online (Sandbox Code Playgroud)

您如何声明实现类似行为的DP?


提供的强制仅适用于Set操作.我想修改Get结果.

c# wpf dependency-properties

1
推荐指数
1
解决办法
2567
查看次数

WPF弹出按钮问题

在WPF中我希望有一个按钮,当它被点击时,它会打开或关闭一个Popup,具体取决于它是否已经打开(如果它已打开则关闭它,如果它已关闭则打开它),我想在XAML中完全执行此操作.这可能吗?

谢谢,
罗伊

wpf xaml popup button

1
推荐指数
1
解决办法
3697
查看次数