小编Ern*_*rno的帖子

如何防止Visual Brush拉伸其内容

在我的项目中,我想在自定义控件的一侧显示一个小徽标.由于我没有画布,我认为可能是一个将背景中的徽标放置在视觉画笔上的好主意.

<VisualBrush>
    <VisualBrush.Visual>
        <Rectangle Width="200" Height="200" Fill="Red" />
    </VisualBrush.Visual>                
</VisualBrush>
Run Code Online (Sandbox Code Playgroud)

但我现在使用的矩形不是200x200.它需要完整的可用空间.那不是我想要的.我也试过一个Viewbox并设置了stretch属性,但结果是一样的,因为最后我不需要一个简单的Rectangle,而是一个带有很多路径对象作为子项的画布.Viewbox仅支持一个孩子.

有什么方法可以解决这个问题?

wpf

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

C#:如何用\替换\\

我有这个字符串临时,我想,以取代\\\

string temp = "\\h\\k";
Run Code Online (Sandbox Code Playgroud)

我已经尝试过,temp.Replace("\\", "\")但输出是hk 我想要的输出\h\k

如何更换"\\"使用"\"

谢谢

c# string escaping c#-4.0

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

c#数组声明语法vs c ++数组声明语法

我基本上是c ++人,现在正在学习c#.虽然数组声明我发现c#期望类型之后的方括号不同于c,c ++.c#语言规范有这样的原因吗?

.net c# c++

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

c#TimeSpan将分钟转换为小时

我把分钟转换成小时.所以,如果我有minutes = 12534.结果应该是208:54.以下代码未能带来此结果.

TimeSpan spWorkMin = TimeSpan.FromMinutes(12534);
string workHours = spWorkMin.ToString(@"hh\:mm");
Console.WriteLine(workHours);
Run Code Online (Sandbox Code Playgroud)

结果是16:54.

如何弄清楚?

c# timespan

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

WPF TextBox拉伸

我在下面有XAML,显示了我想要做的事情.这很简单.

我有一个包含网格的窗口.网格包含带有多个选项卡项的选项卡控件.代码中显示的标签项包含一个网格.网格有两列六行.每行包含一个标签(第0列)和文本框(第1列).我希望标签列可以根据需要消耗尽可能多的空间.我希望文本框列使用行的其余宽度.并且,当用户水平调整窗口大小时,我希望文本框列与窗口收缩和展开.下面的代码没有这样做,我不知道我需要做些什么来解决这个问题.

<Grid Background="#18AFA117">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <Button Content="Generate" Grid.Row="1" Height="23" HorizontalAlignment="Left" Margin="54,8,0,0" Name="Generatebutton" VerticalAlignment="Top" Width="75" Click="Generatebutton_Click" />
        <Button Content="Cancel" Height="23" HorizontalAlignment="Left" Margin="151,8,0,0" Name="CancelButton" VerticalAlignment="Top" Width="75" Grid.Row="1" Click="CancelButton_Click" />
        <TabControl HorizontalAlignment="Stretch" Margin="5,5,5,416" Name="tabControl1" VerticalAlignment="Stretch" Height="Auto" SelectionChanged="tabControl1_SelectionChanged">
            <TabItem Header="TFS Configuration" Name="TFSTab">
                <Grid HorizontalAlignment="Stretch">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto" />
                        <ColumnDefinition Width="Auto" />
                    </Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto" />
                        <RowDefinition Height="Auto" />
                        <RowDefinition Height="Auto" />
                        <RowDefinition Height="Auto" />
                        <RowDefinition Height="Auto" />
                        <RowDefinition Height="Auto" />
                    </Grid.RowDefinitions>
                    <Label Content="TFS Server:" Grid.Column="0" Grid.Row="0" …
Run Code Online (Sandbox Code Playgroud)

wpf xaml

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

向前和向后导航后,WPF文本框绑定消失

我有一个带有主窗口和不同页面的WPF应用程序.在其中一个页面(OverzichtPage)上,我有一个绑定到DataController(Data)的textBox.(这是页面代码隐藏的dependencyProperty)(可能值得一提的是:DataController是一个Singleton,所以患者应该保持不变并且不能消失...)

public static DependencyProperty data = DependencyProperty.Register("Data", typeof(DataController), typeof(OverzichtPage));
    public DataController Data
    {
        get { return (DataController)GetValue(data); }
        set { SetValue(data, value); }
    }


<TextBox Name="naamPatientTxtBox" Text="{Binding Path=Data.Patient.naam, Mode=TwoWay}" DataContext="{Binding ElementName=OP}" />
Run Code Online (Sandbox Code Playgroud)

乍一看,这种绑定似乎有效.当我通过单击按钮导航到另一个页面时

<Button Content="Meer info/ Wijzigen" Click="MeerInfoWijzigenBtn_Click" />

private void MeerInfoWijzigenBtn_Click(object sender, RoutedEventArgs e)
    {
        Uri pageFunctionUri = new Uri("View/ZorgTrajectPage1.xaml", UriKind.Relative);
        NavigationService.Navigate(pageFunctionUri);
    }
Run Code Online (Sandbox Code Playgroud)

并导航回来,绑定突然停止工作.我在导航回来后发现了naamPatientTxtBox.GetBindingExpression(TextBox.TextProperty).ParentBinding; 是空的.有没有人知道为什么这个绑定在导航后突然消失了?我真的不明白这是怎么回事.

wpf binding textbox

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

TextBox与透明背景

我想做textBox一个透明背景c#.net如果你定义属性,Visual Studio会出错

.net c# visual-studio winforms

6
推荐指数
1
解决办法
4万
查看次数

给出两个字符串,一个是另一个的字谜

我刚开始经历"破解编码面试"并针对此问题提供以下解决方案:

public static bool isAnagram(String s, String t)
{
    if (s == "" || t == "") return false;
    else if (s.Length != t.Length) return false;

    int[] letters = new int[256];
    char[] s_array = s.ToCharArray();

    foreach(char c in s_array) 
    { 
        letters[c]++;  
    }

    for (int i = 0; i < t.Length; i++)
    {
        int c = t[i];
        if (--letters[c] < 0) 
        {
            return false;
        }
    }
    return true;
}
Run Code Online (Sandbox Code Playgroud)

这几乎是本书的逐字解决方案,仅限于C#,而不是Java,还有一些额外的nullcheck.我还使用LINQ解决了这个问题,但想要一个不涉及排序的附加解决方案.

这种方法可以变得更优雅吗?代码工作正常,我只是想知道是否有更优雅或更好的解决方案.谢谢!!

c#

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

有没有比使用MVVM的静态类或单例更好的方法?

我发现在很多情况下,似乎(至少表面上看)在我的WPF-MVVM应用程序中使用Singletons或Static类用于模型是有意义的.大多数情况下,这是因为我的大多数模型都需要在整个应用程序中访问.制作我的模型static是一种满足这一要求的简单方法.

但是,我之间的冲突是因为地球上的每个人似乎都讨厌单身人士.所以我想知道我没有更好的方法,或者我做的事情显然是错的?

c# wpf mvvm

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

图像绘制速度

我正在开发一款游戏,但目前我正在运行基准测试.

如果有人可以帮我解决这个问题,我将不胜感激.

我正在做的是,当我点击开始按钮时,我在面板上触发绘制事件,使用以下代码:

    private void startToolStripMenuItem_Click(object sender, EventArgs e)
    {
        try
        {
            pnlArea.Invalidate();

        }
        catch (Exception)
        {
            throw;
        }
    }
Run Code Online (Sandbox Code Playgroud)

然后我在我的绘画事件中这样做:

    private void pnlArea_Paint(object sender, PaintEventArgs e)
    {
        try
        {
            stopwatch = new Stopwatch();
            // Begin timing
            stopwatch.Start();

            if (gameStatus == GameStatus.PlaceHead)
            {
                e.Graphics.DrawImage(dictHead["HeadRight"], 100, 100, 15, 15);
            }

            //e.Graphics.Clear(Color.White);

            if (gameStatus == GameStatus.GameTest)
            {
                int x = 0;
                int y = 0;
                for (int i = 0; i < 5000; i++)
                {
                    x += 15;
                    if (x > 1000) …
Run Code Online (Sandbox Code Playgroud)

c# performance system.drawing winforms

6
推荐指数
2
解决办法
1910
查看次数