小编Mos*_*ico的帖子

如何在WPF中的图像上制作透明画布?

我想在 image1 图像之上制作 GameArea Canvas。我尝试更改 ZIndex 并将画布手动拖动到图像的顶部,但都不起作用,画布不断移回到图像的右侧。

(抱歉,如果我的英语相当笨拙,希望你明白我的意思)

下面是我的代码:

<Window x:Class="TugasBesarTAM_Moses_1072089.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Brickbreaker" Height="420" Width="375" Loaded="Window_Loaded"
    KeyDown="Window_KeyDown" ResizeMode="NoResize">
<DockPanel>      
    <Grid Width="350" Height="30"
          DockPanel.Dock="Top"
          ShowGridLines="True">

        <Grid.ColumnDefinitions>
            <ColumnDefinition/>
            <ColumnDefinition/>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition/>
        </Grid.RowDefinitions>

        <TextBlock x:Name="txtLevel" 
                   Text="Level 00"
                   Grid.Column="0" Grid.Row="1"
                   FontSize="20" FontWeight="Medium"
                   HorizontalAlignment="Left"/>
        <TextBlock x:Name="txtScore" 
                   Text="0"
                   Grid.Column="1" Grid.Row="1"
                   FontSize="20" FontWeight="Medium"
                   HorizontalAlignment="Right"/>
    </Grid>
    <Image Height="300" Name="image1" Stretch="Fill" Width="320" Visibility="Visible" Source="/TugasBesarTAM_Moses_1072089;component/Images/Back1.jpg" Panel.ZIndex="1" />
    <Canvas x:Name="GameArea" DockPanel.Dock="Bottom" Width="320" Height="300" Panel.ZIndex="0">

    </Canvas>
</DockPanel>
Run Code Online (Sandbox Code Playgroud)

感谢您的关注和帮助!

c# wpf xaml

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

如何在Monogame Windows Phone 8 Game项目上设置xnb文件?

我从来没有找到任何教程来使xnb文件工作.他们都使用非Windows Phone 8(Win 8 metro等)的方式.

有人可以指导我让我的xnb文件在MonoGame Windows Phone 8游戏项目中可行吗?因为我用Google搜索没有任何好处.

另外,我可以使用XNA Windows游戏项目(使用VS 2010)创建XNB,还是需要将项目作为Windows Phone游戏(我没有安装WPhoneSDK 7.1,但已在VS2012中安装了第8个)

到目前为止,我使用了几种方法并继续导致Microsoft.Xna.Framework.ContentLoadException

谢谢

xna windows-phone-7 monogame windows-phone-8

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

如何删除字符串中的\n?

如何删除\n字符串?

例如

  1. 输入: string s = "\n1234"
  2. 我想要的输出(但我无法实现): string s = "1234"

我尝试过(并且失败了):

  1. s.Remove(0,1);
  2. s.Trim();

补充说明 :

我认为\n算作1,char因为当我尝试时:

bool b = s[0]=='\n';
Run Code Online (Sandbox Code Playgroud)

b =真.

c# string substring

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

为什么 Canvas wpf 无法检测到点击?

这是我的 XAML

<Window x:Class="Drawing.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">
<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>

    <TextBox Grid.Row="0" Height="25" IsEnabled="False" Name="txt"/>
    <Canvas Name="cnv" MouseLeftButtonDown="cnv_MouseLeftButtonDown" Grid.Row="1"/>
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)

...这是我的 C# 代码

private void cnv_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    Point p = Mouse.GetPosition(cnv);
    p.X += cnv.Margin.Left;
    p.Y += cnv.Margin.Top;
    txt.Text = p.ToString();
}
Run Code Online (Sandbox Code Playgroud)

问题 :

  1. 即使我单击画布,该事件也没有触发。我想知道为什么?有什么我错过的吗?
  2. 在这段代码中,我没有包含任何画布边距,但由于我想稍后使用边距,是否有必要添加带有边距的点击位置以获得正确的值?

谢谢。

c# wpf canvas mouseevent

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

什么是MVVM限制?

背景

我正在学习MVVM,发现它在显示数据/模型方面很棒.

我认为,只显示一个不太好的简单模型才能显示复杂的模型.

MVVM是否有一定限制(编号列表或链接会很好)或者我错误地构建模型是因为MVVM在任何情况下都是通用的吗?

我所说的"限制"主要集中在如何制作模型的限制上.

我发这篇文章的原因是因为我觉得用MVVM方式构建我的应用程序显示有很多障碍.

等等

MVVM旁边是否还有其他模式可用于WPF?

顺便说一句,对不起,如果这是一个"不清楚被问到什么"的问题.


如果需要,我的"案例"是我正在制作一个编号的乐谱评分作家.请不要问"没有人使用编号系统,为什么要这么麻烦?".在我的国家,它仍然常用.

.net wpf design-patterns mvvm

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

不能在父母的同一集合下加入2个后代

这是我的班级结构:

public class MainWindow
{
    public List<FirstBar> FirstBars { get; set; }
    public List<Foo> SelectedFoos { get; set; }

    public MainWindow()
    {
        FirstBars = new List<FirstBar>();
        SelectedFoos = new List<Foo>();
    }
}

public abstract class Foo { public bool IsSelected { get; set; } }
public class FirstBar : Foo { public List<SecondBar> SecondBar { get; set; } }
public class SecondBar : Foo { }
Run Code Online (Sandbox Code Playgroud)

......然后我想SelectedFoos在这个条件下填写/:

我想找到所有FirstBarIsSelected==true.如果我找到了FirstBar哪一个IsSelected==false,那么我会SecondBar在 …

c# collections inheritance

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

制作"多线"回收者视图

所以,通常,a RecyclerView是水平的或垂直的,如下图所示:

在此输入图像描述

生产上述两种产品都没有问题.但现在,我想制作一个RecyclerView"多线"-ey(我不知道这是否是一个正确的命名方式).基本上,就像在记事本中一样,如果选中"自动换行",则屏幕外文本将被发送到下一行.

所以行为就像,HorizontalRecyclerView但在下面之前,项目将首先水平填充.

假设子项的每个大小都相同,那么将它放在屏幕中心也是一件好事.

类似:

在此输入图像描述

但不喜欢(它不在屏幕中心):

在此输入图像描述

顺便说一句,我不知道我喜欢管理我的馆藏,RecyclerView而不是TableLayout因为我以前从未使用TableLayout过,而且RecyclerView似乎最有效的方法是重用馆藏布局.

android android-recyclerview

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

反斜杠n"\n"不起作用?

您好我正在制作一个应用程序,根据某些字符分割歌曲文本.当我输入诸如"sampletext/sampletext"之类的东西时应用程序工作,那么结果应该是:

sampletext 
sampletext
Run Code Online (Sandbox Code Playgroud)

但是,结果是,而不是上述

sampletextsampletext
Run Code Online (Sandbox Code Playgroud)

以下是代码:

    private void button1_Click(object sender, EventArgs e)
    {
        textBox2.Text = "";
        string[] a = TextToSongFormatConverter(textBox1.Text, '/');
        textBox2.Text += "\n"; textBox2.Text += "\n"; textBox2.Text += "\n";
        foreach (var item in a)
        {
            textBox2.Text += item;
            textBox2.Text += "\n";
        }
    }

    public static string[] TextToSongFormatConverter(string text, char separator)
    {
        string[] result;
        result = text.Split(separator);

        for (int i = 0; i < result.Length; i++)
        {
            result[i] = result[i].Trim();
        }
    }
Run Code Online (Sandbox Code Playgroud)

我正在使用visual studio 2012和c#以及windows窗体:

这是截图: 在此输入图像描述

知道为什么吗?谢谢.

c# string winforms

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