我已经更改了以下SystemColors:
<!-- Background of selected item when focussed -->
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}"
Color="Transparent" />
<!-- Background of selected item when not focussed -->
<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}"
Color="Transparent" />
Run Code Online (Sandbox Code Playgroud)
我不知道该怎么称呼它,但是SystemColor负责我所谓的:"InactiveSelectedItem"?每当我失去对SelectedItem的关注时,它就会变为这种颜色.
如果有人可以帮助我会很好.我用混合物已经检查但我找不到.颜色是#F0F0F0.
例:

我想尽快画出线条.出于这个原因,我使用InteropBitmap实现了一个方法.这非常有效.下一步是与ShardDX进行比较.基本上我想要做的是:在BackgroundWorker中运行以下代码.这确实告知WPF有关WIC的更新.我发现这个代码(创建ShapeDX和绘制线所需的所有代码)比使用InteropBitmap做同样的代码要花费大约10ms.
我现在的问题很简单,如何加快速度?我可以以某种方式更改代码,我只需要调用BeginDraw,创建行和EndDraw,而不是总是执行所有这些图像编码/解码的东西吗?还是有更好的方法?
var wicFactory = new ImagingFactory();
var d2dFactory = new SharpDX.Direct2D1.Factory();
const int width = 800;
const int height = 200;
var wicBitmap = new Bitmap(wicFactory, width, height, SharpDX.WIC.PixelFormat.Format32bppBGR, BitmapCreateCacheOption.CacheOnLoad);
var renderTargetProperties = new RenderTargetProperties(RenderTargetType.Default, new PixelFormat(Format.Unknown, AlphaMode.Unknown), 0, 0, RenderTargetUsage.None, FeatureLevel.Level_DEFAULT);
var d2dRenderTarget = new WicRenderTarget(d2dFactory, wicBitmap, renderTargetProperties);
var solidColorBrush = new SharpDX.Direct2D1.SolidColorBrush(d2dRenderTarget, SharpDX.Color.White);
d2dRenderTarget.BeginDraw();
//draw whatever you want
d2dRenderTarget.EndDraw();
// Memorystream.
MemoryStream ms = new MemoryStream();
var stream = new WICStream(wicFactory, ms);
// JPEG encoder
var encoder …Run Code Online (Sandbox Code Playgroud) 我想迭代System.Drawing.Color结构并使用它来初始化一个笔列表.
我试过这样的,但字段的类型不适合:
colorList = new List<System.Drawing.Pen>();
foreach (var field in typeof(System.Drawing.Color).GetFields())
{
if (field.FieldType.Name == "Color" && field.Name != null)
{
colorList.Add(new System.Drawing.Pen(field, (float)1));
}
}
Run Code Online (Sandbox Code Playgroud)
请帮帮我.
我有以下几种情况:
我想(通过串口)向设备发送一些命令.该设备确实向我发回连续的数据流(每秒最多12000个值).
为了控制某些设置,我需要一些按钮来向设备发送命令,以便在数据流之前和期间启动/停止/更改设置.另外,我想要获得这些数据的实时情节.我当然会过滤这些数据.此外,在某些时间戳处,将存在指示我想要切出所接收数据的某个窗口的信号.
这意味着我将有两个图表.我使用WPF已经取得了一些进展,但现在当我与下方图表进行交互(缩放/平移)时,上面的一个会显着冻结.这是因为两者都经常刷新!
使用线程完成工作(数据接收/过滤),但是必须在ui线程内完成绘图的更新.
任何想法如何解决这个问题?也许使用多个流程?

如何获取滑块在样式中的拇指位置?我想显示拇指位置的实际值。这可以通过根据值更改后续文本块的宽度来实现。但是如何获得拇指的位置呢?
<TextBlock Grid.Column="0" Width="THUMB POSITION" HorizontalAlignment="Right" Grid.Row="0" Text="{Binding Path=Value, RelativeSource={RelativeSource TemplatedParent}}"></TextBlock>
Run Code Online (Sandbox Code Playgroud)
完整的样式如下所示:
<Style x:Key="MyCustomStyleForSlider" TargetType="{x:Type Slider}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Slider}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto" MinHeight="{TemplateBinding MinHeight}"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto" MinWidth="{TemplateBinding MinWidth}"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Grid.Row="0" Text="{Binding Path=Value, RelativeSource={RelativeSource TemplatedParent}}"></TextBlock>
<TextBlock Grid.Column="0" Grid.Row="1" Text="{Binding Path=Minimum, RelativeSource={RelativeSource TemplatedParent}}"></TextBlock>
<TextBlock Grid.Column="2" Grid.Row="1" Text="{Binding Path=Maximum, RelativeSource={RelativeSource TemplatedParent}}"></TextBlock>
<TickBar Grid.Column="1" x:Name="TopTick" Visibility="Visible" Fill="LightGray" Placement="Top" Height="6" Grid.Row="1"/>
<TickBar Grid.Column="1" x:Name="BottomTick" Visibility="Collapsed" Fill="Green" Placement="Bottom" Height="4" Grid.Row="0"/> …Run Code Online (Sandbox Code Playgroud)