小编Rob*_*Dam的帖子

从同一个类中的其他构造函数调用构造函数

我有一个有2个构造函数的类:

public class Lens
{
    public Lens(string parameter1)
    {
        //blabla
    }

    public Lens(string parameter1, string parameter2)
    {
       // want to call constructor with 1 param here..
    }
}
Run Code Online (Sandbox Code Playgroud)

我想从第二个调用第一个构造函数.这可能在C#中吗?

c# constructor

135
推荐指数
3
解决办法
7万
查看次数

在WPF TextBox上捕获鼠标单击

我想捕获鼠标点击TextBox:

<Window x:Class="WpfApplication2.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Window1" Height="300" Width="300">
    <Grid>
        <TextBox x:Name="t" MouseDown="TextBox_MouseDown"
                 MouseLeftButtonDown="TextBox_MouseLeftButtonDown"
                 MouseLeftButtonUp="TextBox_MouseLeftButtonUp"
                 Height="50" />
    </Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)

现在我只在用户第一次进入时收到鼠标点击事件TextBox.在此TextBox键盘焦点之后,我不再接收鼠标点击事件.知道如何让这个工作吗?

c# wpf xaml textbox mouseevent

30
推荐指数
2
解决办法
5万
查看次数

在XAML中重用路径对象

我有一个Path(一个明星人物):

<Path x:Name="NiceStar" StrokeThickness="10" Stroke="#ff000000" StrokeMiterLimit="1" Data="F1 M 126.578613,11.297852 L 162.373535,83.825684 L 242.412598,95.456055 L 184.495605,151.911133 L 198.167480,231.626953 L 126.578613,193.990234 L 54.988770,231.626953 L 68.661621,151.911133 L 10.744629,95.456055 L 90.783691,83.825684 L 126.578613,11.297852 Z">
    <Path.Fill>
        <RadialGradientBrush MappingMode="Absolute" GradientOrigin="390.395508,448.130371" Center="390.395508,448.130371" RadiusX="113.034821" RadiusY="113.034821">
            <RadialGradientBrush.Transform>
                <MatrixTransform Matrix="1,0,-0,-1,-263.816895,569.592773" />
            </RadialGradientBrush.Transform>
            <GradientStop Offset="0" Color="#ff00ff00"/>
            <GradientStop Offset="1" Color="#ff006736"/>
        </RadialGradientBrush>
    </Path.Fill>
</Path>
Run Code Online (Sandbox Code Playgroud)

现在我想多次复制这个Path(只是引用"NiceStar").我可以在纯XAML中执行此操作吗?

通过这样做,我可以使用它一次:

<Decorator Child="{StaticResource star}" />
Run Code Online (Sandbox Code Playgroud)

但是,我不能复制这一行.我的编译器说:

指定的元素已经是另一个元素的逻辑子元素.首先断开它.

.net c# wpf xaml

14
推荐指数
3
解决办法
1万
查看次数

WPF列表框布局:多列

我有一个包含CheckBoxes的ListBox(WPF).我正在使用配置屏幕.示意图如下:

替代文字

现在我要添加一个"Test 5"CheckBox.我的垂直空间有限,所以我想让它出现在水平方向,如下图所示:

替代文字

可以修改ListBox布局,以便CheckBoxes将像这样排列吗?

c# wpf xaml

14
推荐指数
3
解决办法
2万
查看次数

为什么这个C#代码没有编译?

double? test = true ? null : 1.0;
Run Code Online (Sandbox Code Playgroud)

在我的书中,这是一样的

if (true) {
  test = null;
} else {
  test = 1.0;
}
Run Code Online (Sandbox Code Playgroud)

但是第一行给出了这个编译错误:

无法确定条件表达式的类型,因为' <null>'和' double' 之间没有隐式转换.

.net c# nullable

11
推荐指数
2
解决办法
2186
查看次数

WPF转换器:文化来自哪里

我创建了一个WPF转换器类:

public class DoubleConverter : IValueConverter
{
    public object Convert(object value, Type TargetType, object parameter, CultureInfo culture)
    {
        //blah blah
    }
}
Run Code Online (Sandbox Code Playgroud)

我想知道谁设置了传递的culture参数.我希望它与当前的Windows设置相同,但它似乎有所不同.

任何人?

.net c# wpf converter

8
推荐指数
2
解决办法
2849
查看次数

将ListBox放在ScrollViewer中:鼠标滚轮不起作用

把一个当我的鼠标滚轮不起作用ListBoxScrollViewer.

ListBox这种事件会以某种方式"窃取"吗?

<ScrollViewer VerticalScrollBarVisibility="Auto" Style="{StaticResource myStyle}">
<ListBox>
  <ListBoxItem>Test 1</ListBoxItem>
  <ListBoxItem>Test 2</ListBoxItem>
  <ListBoxItem>Test 3</ListBoxItem>
  <ListBoxItem>Test 4</ListBoxItem>
  <ListBoxItem>Test 5</ListBoxItem>
  <ListBoxItem>Test 6</ListBoxItem>
  <ListBoxItem>Test 7</ListBoxItem>
</ListBox>
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)

编辑:按照Joel的要求,添加了我之所以这样做的原因..我这样做是因为我不喜欢ListBox内部ScrollViewer对我的布局做了什么.我有一个背景图片,除此之外,ListBox如下图所示:

替代文字http://robbertdam.nl/share/1.png

现在,当滚动条出现时,会发生以下情况:

替代文字http://robbertdam.nl/share/2.png

我创建了一个样式ScrollViewer,显示滚动条顶部的的ListBox项目内容.在ListBox项目的datatemplate中,我为滚动条保留了一些空间.

谢谢,Robbert Dam

c# wpf xaml listbox scrollviewer

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

在WPF中渲染清晰的线条

如果我呈现以下内容:

<Grid>
  <Canvas SnapsToDevicePixels="True">  
    <Path Fill="#FF000000" SnapsToDevicePixels="True" Data="M 0.00,0.00 L 2.50,0.00 0.00,10.00 " />
    <Path Fill="#FF260014" SnapsToDevicePixels="True" Data="M 2.50,0.00 L 7.50,0.00 2.50,10.00 0.00,10.00 " />
    <Canvas.RenderTransform>
      <ScaleTransform ScaleX="{Binding ElementName=slider,Path=Value}" ScaleY="{Binding ElementName=slider,Path=Value}" />
    </Canvas.RenderTransform>
  </Canvas>
  <Slider x:Name="slider" Minimum="0" Maximum="50" Value="30"/>
</Grid>
Run Code Online (Sandbox Code Playgroud)

我得到这个结果(Kaxaml):

在此输入图像描述

注意两个形状之间的细白线.我四处搜索,发现这与像素对齐有关.我希望设置SnapsToDevicePixels="True"足以摆脱线路,但这不起作用!

任何想法如何摆脱白线?

c# wpf xaml drawing path

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

检查路径是否在网络上

在我的应用程序中,我有一个对话框,用户可以在其中选择数据库备份位置.
我想警告用户他/她选择的位置是"可能不安全".

我想考虑下列安全地点:

  1. 当选定的文件夹在网络上时
    (通过映射的驱动器(I:\Backup)或UNC表示法(\\server2\backup))
  2. 所选文件夹与数据库文件夹位于不同的物理磁盘上时

如何获得有关所选文件夹的此类信息?
我知道这个DriveInfo类,但它只处理驱动器号,而不是UNC路径.

.net c# vb.net

8
推荐指数
2
解决办法
9215
查看次数

绑定到WPF Canvas上的元素的XY坐标

我有一个画有2个"点"的画布.看到这个(简化)代码:

<Canvas> 
    <Ellipse />
    <Ellipse />
    <Canvas.RenderTransform>
        <RotateTransform x:Name="rotateEllipse" />
    </Canvas.RenderTransform>
</Canvas>
Run Code Online (Sandbox Code Playgroud)

如您所见,我想使用给定的RotateTransform旋转画布.

接下来,我想在每个Ellipse(标签)附近放置一个TextBlock.但是,我不想将此TextBlock包含在Canvas中,因为它也会旋转.我希望文本保持水平.

知道如何以优雅的方式解决这个问题吗?

.net c# wpf xaml

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

标签 统计

c# ×10

wpf ×7

xaml ×6

.net ×5

constructor ×1

converter ×1

drawing ×1

listbox ×1

mouseevent ×1

nullable ×1

path ×1

scrollviewer ×1

textbox ×1

vb.net ×1