在System.Windows.Controls
,我可以看到一个PrintDialog
然而,我似乎无法找到一个本地人FileDialog
.我是否需要创建引用System.Windows.Forms
或是否有其他方法?
我在BitBucket上有一个超过4GB的GIT存储库.
我无法使用普通的GIT命令克隆存储库,因为它失败了(看起来它工作了很长时间但后来又回滚).
我也无法从BitBucket界面下载存储库作为zip:
Feature unavailable This repository is too large for us to generate a download.
Run Code Online (Sandbox Code Playgroud)
有没有办法逐步下载GIT存储库?
我尝试过使用MSDN中的示例,但它们似乎只适用于Windows窗体.例如,使用.InvokeRequired的方法依赖于窗体控件,但是此方法不适用于WPF控件.Backgound工人方法也抛出InvalidOperationException
-
调用线程无法访问此对象,因为另一个线程拥有它.
那么如何在WPF环境中完成呢?
我在XAML中有一个已定义的路径:
<UserControl.Resources>
<ResourceDictionary>
<Path x:Key="N44" Width="20" Height="80" Stretch="Fill" Fill="#FF000000" Data="M 20,25.2941L 20,29.4118L 15.9091,29.4118L 15.9091,40L 12.2727,40L 12.2727,29.4118L 2.54313e-006,29.4118L 2.54313e-006,25.6985L 13.4872,7.62939e-006L 15.9091,7.62939e-006L 15.9091,25.2941L 20,25.2941 Z M 12.2727,25.2941L 12.2727,5.28493L 2.09517,25.2941L 12.2727,25.2941 Z M 20,65.2941L 20,69.4118L 15.9091,69.4118L 15.9091,80L 12.2727,80L 12.2727,69.4118L -5.08626e-006,69.4118L -5.08626e-006,65.6985L 13.4872,40L 15.9091,40L 15.9091,65.2941L 20,65.2941 Z M 12.2727,65.2941L 12.2727,45.2849L 2.09517,65.2941L 12.2727,65.2941 Z "/>
</ResourceDictionary>
</UserControl.Resources>
Run Code Online (Sandbox Code Playgroud)
我想将它添加到WPF Gird并像这样工作一次:
System.Windows.Shapes.Path aPath = new System.Windows.Shapes.Path();
aPath = (System.Windows.Shapes.Path)this.Resources["N44"];
LayoutRoot.Children.Add(aPath);
Run Code Online (Sandbox Code Playgroud)
但是,如果我在按钮单击事件上添加此代码,然后单击该按钮两次,则会引发错误
"指定的Visual已经是另一个Visual的子项或CompositionTarget的根."
然后我尝试创建资源的两个实例,但我继续收到相同的错误.以下是我用于此测试的代码:
private void cmbTest_Click(object sender, System.Windows.RoutedEventArgs e)
{
System.Windows.Shapes.Path aPath = new System.Windows.Shapes.Path();
aPath = …
Run Code Online (Sandbox Code Playgroud) 到目前为止,我有这个
<UserControl.Resource>
<LinearGradientBrush x:Key="KeyDownBrush" .....>
Run Code Online (Sandbox Code Playgroud)
现在,我想在按下一个键时访问这个定义的资源,并用C#中的KeyDownBrush替换当前对象.
我已经尝试了这个.Resource.Contains("KeyDownPress")并且能够返回True,所以我认为我几乎在那里,但我不确定如何访问该对象并将其正确解析为Brush实例.
任何指导将不胜感激.
如果我使用以下内容
for(int i = 255; i > 0; i--)
{
Color transparentBlack = new Color(0, 0, 0, i);
}
Run Code Online (Sandbox Code Playgroud)
我有使用这种颜色的对象的效果,从黑色到浅灰色绘制,然后当alpha值变为零时不可见.但是,如果我以白色值开头:
new Color(255, 255, 255, i);
Run Code Online (Sandbox Code Playgroud)
物体永远不会变得不可见,只会保持白色.我还注意到,如果我使用的颜色比黑色(比如50,50,50)轻一点,那么绘图会从黑暗变为隐形,变为白色.
我假设我只是不明白alpha混合混合是如何工作的,但有没有办法使白色渐变成半透明?
编辑:我正在绘制的背景是Color.CornflowerBlue(100,149,237,255)
编辑:示例XNA程序再现说明.使用; 创建一个新的XNA Game Studio 4.0项目--Windows Game(4.0),称之为AlphaBlendTest - &在内容项目中添加一个新的SpriteFont并将其命名为testfont
using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
namespace AlphaBlendTest
{
/// <summary>
/// This is the main type for your game
/// </summary>
public class Game1 : Microsoft.Xna.Framework.Game
{
GraphicsDeviceManager graphics; …
Run Code Online (Sandbox Code Playgroud) 我想为C#应用程序实现一个Plug-In框架; 这样应用程序在编译时不需要知道所有可用的.DLL,但可以在运行时动态链接.我希望我需要设置一些预期的参数来传入和传出插件的信息,但我不确定还需要什么,或者如何在C#中解决这个问题.你能指点一下这个实现的模式,或者我可以实现的框架(如果需要API - 需要开源许可证)吗?
我一直在尝试在Silverlight和XNA之间移植一些Windows Phone 7代码,这依赖于IsolatedStorageSettings,但我无法让Visual Studio解决它.当我查看Intellisense在System.IO.IsolatedStorage下解析的内容时,它列出了IsolatedStorageFile,IsolatedStorageException和IsolatedStorageStream.
文档说支持的版本是针对Silverlight的,但我不明白为什么我会看到因项目类型而产生的差异.
谢谢
我有一个列表视图,在全景控制上.我还为MouseLeftButtonUp创建了一个事件但是我发现在MousLeftButtonUp触发时在全景项之间滚动(这是有道理的,但从用户的角度来看它是意外的).
有没有办法为列表创建点击事件?或者添加一个模拟该行为的行为?
从编译后的角度(而不是编码语法的角度来看),在C#中,在一行中发生的一组操作与多行中发生的一组操作之间的编译代码是否存在实际差异?
这个
object anObject = new object();
anObject = this.FindName("rec"+keyPlayed.ToString());
Rectangle aRectangle = new Rectangle();
aRectangle = (Rectangle)anObject;
Run Code Online (Sandbox Code Playgroud)
vs这个.
Rectangle aRectangle = (Rectangle)this.FindName("rec"+keyPlayed.ToString());
Run Code Online (Sandbox Code Playgroud)
我想知道,因为似乎有一种观点认为使用的线路数量最少,但是我想了解这是因为有一个切实的技术效益,或者是否在某些方面带来了实实在在的利益,或者是否确实存在一个可量化的原因?
c# ×7
wpf ×4
xaml ×2
xna ×2
bitbucket ×1
coding-style ×1
filedialog ×1
git ×1
optimization ×1
plugins ×1
resources ×1