小编pix*_*tur的帖子

使用WPF实现日志查看器

我寻求有关使用WPF实现控制台日志查看器的最佳方法的建议.

它应符合以下标准:

  • 快速滚动100.000+行
  • 某些条目(如stacktraces)应该是可折叠的
  • 长项包裹
  • 列表可以按不同的标准(搜索,标签等)进行过滤
  • 在最后,它应该在添加新项目时继续滚动
  • 线元素可以包含某种添加格式,如超链接和出现计数器

总的来说,我有一些想法,如FireBug和Chrome的控制台窗口.

我玩这个但是我没有取得多大进展,因为...... - 数据网格无法处理不同的项目高度 - 滚动位置仅在释放滚动条后更新(这是完全不可接受的).

我很确定,我需要某种形式的虚拟化,并希望遵循MVVM模式.

欢迎任何帮助或指示.

c# wpf performance user-interface scroll

71
推荐指数
2
解决办法
4万
查看次数

使用XAML/WPF实现复杂曲线编辑器的策略

我想实现一个相当复杂的CurveEditor,它必须支持通常的要求,例如:

  • 可自由伸缩和可移动的轴
  • 每个曲线点的不同插值类型(线性,立方,样条)
  • 切线(连接和断开)
  • 通过围栏或单击选择一个或多个点进行编辑(移动,缩放,删除)
  • 仅显示所选曲线点的手柄和高光

CurveEditorComponent的示例图

我不想操纵实际的WPF曲线,但是现有的带有键/值/切线的模型设置并从我们的实现中采样曲线的精确形状.

我已经收集了一些实现自定义UserControls和模板的经验.但我想确保,我不会错过任何明显的解决方案.我计划使用这个通用的XAML树:

  • CurveEditor - 包含所有内容的窗口
    • MainThumb:启用拖动和缩放编辑器范围
    • XAxis:UserControl在左侧以某种比例递增
    • YAxis:UserControl在底部有一定比例
    • 曲线:画布保持曲线
      • 曲线:用于单条曲线的UserControl
        • CurveName - 曲线的标签
        • CurveLine - DrawingVisual将通过对样条函数的内部实现进行采样来呈现实际曲线.
        • CurveEditPoints - 包含所有编辑点的画布
          • CurveEditPoint - 单个编辑点的UserControl
            • LeftTangent - 左切线控制柄的UserControl
              • LeftTangentThumb - 用于修改句柄
            • RightTangent - 用于右切线控制柄的UserControl
              • RightTangentThumb - 用于修改句柄
          • CurvePointCenter - 实际点的可视化,选择状态和插值类型.
            • CurvePointThumb - 用于选择和拖动点的拇指

我知道,这是一个非常复杂的问题,我不是要求实际实施.我对以下问题感兴趣:

  1. 你能推荐一些可能对我有帮助的教程或书籍吗(我已经有了Illustrated WPF,WPF Control Development Unleashed,还有其他一些)
  2. 像Tangents这样的次要元素应该是单独的UserControls吗?
  3. 什么容器最适合托管个人"曲线","EditPoints"和"Tangents".现在,我使用Canvas和Canvas.SetLeft/SetTop定位孩子,但感觉"奇怪".
  4. 我应该使用像Path或DrawingVisual-Classes这样的"形状"来实现实际表示.路径是直截了当的,但我担心数百个CurvePoints的性能.
  5. 我应该使用变换来旋转切线还是可以在文件后面的代码中进行一些三角测量数学运算?
  6. 结构是否大致有意义,或者您是否建议采用完全不同的方法?

architecture wpf user-interface xaml user-controls

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

为后面的代码中的xaml元素设置多绑定

我有以下工作XAML代码,它基本上绑定了几个属性来计算我的用户控件的最终位置:

<UserControl x:Class="CurvePointControl"
    ....
         >
<UserControl.Resources>
    <local:VToYConverter x:Key="vToYConverter" />
</UserControl.Resources>
<UserControl.RenderTransform>
    <TranslateTransform x:Name="XTranslateTransform" >
        <TranslateTransform.Y>
            <MultiBinding Converter="{StaticResource vToYConverter}">
                <Binding ElementName="curveEditPoint" Path="V"/>
                <Binding RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type local:CurveEditor}}" Path="MinV"/>
                <Binding RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type local:CurveEditor}}" Path="MaxV"/>
                <Binding RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type local:CurveEditor}}" Path="ActualHeight"/>                    
            </MultiBinding>
        </TranslateTransform.Y>
    </TranslateTransform>
</UserControl.RenderTransform>
Run Code Online (Sandbox Code Playgroud)

...

由于各种原因(但特别是为了避免相关来源,我现在正试图在代码中做同样的事情而没有成功.

这是我目前的代码:

    public CurvePointControl(CurveEditor CV)
    {
        InitializeComponent();

        MultiBinding multiBinding = new MultiBinding();
        multiBinding.Converter = m_VToYConverter;

        multiBinding.Bindings.Add(new Binding("V"));
        multiBinding.Bindings.Add(new Binding(CV.MinVProperty)); // doesn't work
        multiBinding.Bindings.Add(new Binding(CV.MaxVProperty)); // doesn't work
        multiBinding.Bindings.Add(new Binding(CV.ActualHeight)); // doesn't work       
        multiBinding.NotifyOnSourceUpdated= true;

        this.SetBinding(TranslateTransform.YProperty, multiBinding); …
Run Code Online (Sandbox Code Playgroud)

c# data-binding wpf xaml properties

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

rspec触发"DEPRECATION WARNING:ActiveSupport :: Concern中的InstanceMethods模块将不再自动包含在内."

我按照http://guides.rubyonrails.org/getting_started.html上的教程使用脚手架并添加了rspec.到目前为止我没有添加任何特殊代码.

什么时候......

rake spec
Run Code Online (Sandbox Code Playgroud)

...我收到以下20个警告:

弃用警告:ActiveSupport :: Concern中的InstanceMethods模块将不再自动包含在内.请直接在RSpec :: Rails :: ViewExampleGroup中定义实例方法.(来自/Users/pixtur/Projects/website-com/spec/views/welcome/index.html.haml_spec.rb:3)

我不明白,这个错误试图告诉我什么.index.html.haml_spec.rb是由脚手架创建的,看起来像这样:

require 'spec_helper'

describe "welcome/index.html.haml" do
  pending "add some examples to (or delete) #{__FILE__}"
end
Run Code Online (Sandbox Code Playgroud)

我正在使用 rails 3.2.3 / ruby 1.9.2

我必须遵循安装的宝石:

  • 动作制作者(3.2.3)

  • actionpack(3.2.3)

  • activemodel(3.2.3)
  • activerecord(3.2.3)
  • activeresource(3.2.3)
  • activesupport(3.2.3)
  • act-as-taggable-on(2.2.2)
  • 可寻址(2.2.8)
  • arel(3.0.2)
  • autotest-rails(4.1.2)
  • 建设者(3.0.0)
  • 捆绑(1.1.3)
  • 卡皮斯特拉诺(2.12.0)
  • 水豚(1.1.2)
  • 子进程(0.3.2)
  • 咖啡轨(3.2.2)
  • 咖啡脚本(2.2.0)
  • coffee-script-source(1.3.3)
  • 差异(1.1.3)
  • erubis(2.7.0)
  • execjs(1.4.0)
  • ffi(1.0.11)
  • haml(3.1.6)
  • haml-rails(0.3.4)
  • 高线(1.6.12)
  • 徒步旅行(1.2.1)
  • i18n(0.6.0)
  • 旅程(1.0.3)
  • jquery-rails(2.0.2)
  • json(1.7.3)
  • libv8(3.3.10.4 x86_64-darwin-10)
  • libwebsocket(0.1.3)
  • 邮件(2.4.4)
  • 哑剧型(1.18)
  • mini_magick(3.4)
  • multi_json(1.3.5)
  • mysql(2.8.1)
  • net-scp(1.0.4)
  • net-sftp(2.0.5)
  • net-ssh(2.5.2)
  • net-ssh-gateway(1.1.0) …

rspec ruby-on-rails scaffolding ruby-on-rails-3

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