小编jit*_*arg的帖子

在Xamarin中创建完整度计(状态显示)

我正在尝试设计一个显示进程当前状态的控件,如下图所示.

状态控制

因此,我们有一个圆形显示状态,其中包含里程碑或检查点的彩色部分.在图像中,我们已经完成了前两个阶段,第三阶段已经完成了70%.

我知道Jquery中有一个非常相似的控件.但我不确定,如果我可以使用Xamarin Forms中的第三方控件.如果没有第三方控制,我应该如何进行设计.

我应该只为不同阶段创建图像并显示图像吗?或者我应该创建一个自定义控件,它可以采用两个值,"里程碑"和"percentage_complete",然后设计可能是一个饼图?

user-interface xamarin xamarin.forms

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

通过将2D精灵与3D模型混合来实现Z缓冲问题

我必须使用XNA在3d模型上创建一个二维菜单.现在,我已经创建了2D的spritebatch和一个3d模型.但是,正如我已经注意到的,并且在其他地方被提及,由于z缓冲区问题,模型没有正确显示.根据教程,我应该在draw方法中再次启用DepthBuffer.但是,不知何故,当我使用时:

GraphicsDevice.DepthStencilState.DepthBufferEnable = true;
Run Code Online (Sandbox Code Playgroud)

调试期间代码抛出错误,说,

无法更改只读DepthStencilState.状态对象在第一次绑定到GraphicsDevice时变为只读.要更改属性值,请创建一个新的DepthStencilState实例.

现在,我也试图创建一个新的DepthStencilState实例,但是,即使这样似乎也不起作用.我总是得到相同的错误,即使帮助文档建议它的读/写值.

请帮我弄清楚如何正确显示3D模型.

这是Draw代码供参考.

protected override void Draw(GameTime gameTime)
{
     GraphicsDevice.Clear(Color.CornflowerBlue);

     Matrix[] transforms = new Matrix[myModel.Bones.Count];
     myModel.CopyAbsoluteBoneTransformsTo(transforms);

     foreach (ModelMesh mesh in myModel.Meshes)
     {
         foreach (BasicEffect effect in mesh.Effects)
         {
             effect.EnableDefaultLighting();

             //effect.DirectionalLight0.Enabled = true;
             //effect.DirectionalLight0.DiffuseColor = Color.AntiqueWhite.ToVector3();
             //effect.DirectionalLight0.Direction = new Vector3(0, 0, 0);

             effect.World = transforms[mesh.ParentBone.Index] * Matrix.CreateRotationY(myModelRotation) * Matrix.CreateTranslation(myModelPosition);
             effect.View = Matrix.CreateLookAt(new Vector3(0, 0, 3000), Vector3.Zero, Vector3.Up);
             effect.Projection = Matrix.CreatePerspectiveFieldOfView(MathHelper.ToRadians(45f),
             GraphicsDevice.Viewport.AspectRatio, 1, 5000);
         }

         mesh.Draw();
    }

    spriteBatch.Begin();
    spriteBatch.Draw(myTexture, new Vector2(0, 0), Color.White);
    spriteBatch.End();

    DepthStencilState d …
Run Code Online (Sandbox Code Playgroud)

xna buffer depth

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

script标记和"<%....%>"标记之间有什么区别?

我刚刚开始研究Web应用程序,并学习使用ASP.Net.我遇到过两种在HTML页面中添加脚本的方法.一种是使用脚本标记,另一种是使用<% ... %>标记.但是,我无法弄清楚,两者之间有什么区别,在哪种情况下我应该选择哪一个?

html asp.net scripting web-applications

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

将普通属性转换为依赖属性

我有一个控件,我用于我的新应用程序.此控件具有常规属性.

    Public Property Value() As String
    Get
        If AutoCompleteTextBox.SearchText Is Nothing Then
            Return String.Empty
        Else
            Return AutoCompleteTextBox.SearchText.ToString.Trim
        End If
    End Get
    Set(value As String)
        AutoCompleteTextBox.SearchText = value
    End Set
End Property
Run Code Online (Sandbox Code Playgroud)

编辑:

所以,经过多次尝试,我终于到了这个阶段.

    Public Shared ValueProperty As DependencyProperty = DependencyProperty.Register("Value", GetType(String), GetType(AutoCompleteBox))
Public Property Value() As String
    Get
        Return Me.GetValue(ValueProperty).ToString
    End Get
    Set(value As String)
        Me.SetValue(ValueProperty, value)
    End Set
End Property
Public Event PropertyChanged As PropertyChangedEventHandler _
        Implements INotifyPropertyChanged.PropertyChanged
Run Code Online (Sandbox Code Playgroud)

这是依赖属性.此属性仍然没有约束力.输出窗口中没有显示绑定错误.

Text="{Binding RelativeSource={RelativeSource Self}, Path=Value, Mode=TwoWay}"
Run Code Online (Sandbox Code Playgroud)

这是我的绑定方法.我不知道我还能做什么.至少如果出现错误,我本可以找到一些东西.没有任何错误,我只是一个没头的鸡.

vb.net wpf xaml dependency-properties

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

将自动生成的pdf附加到asp.net应用程序中的电子邮件中

我有一个非常具体的要求.在我的网络应用程序中,我必须从数据库值和电子邮件正文生成pdf发票.我可以使用SMTP轻松发送它,这是完美的.

但是,问题是我们不能依靠系统来永远完美,而这是一张发票.因此,我们需要打开默认邮件客户端而不是使用SMTP.现在,我有以下代码

//Code to create the script for email
string emailJS = "";
emailJS += "window.open('mailto:testmail@gmail.com?body=Test Mail" + "&attachment=" + emailAttachment + "');";
//Register the script for post back
ClientScript.RegisterStartupScript(this.GetType(), "mailTo", emailJS, true);
Run Code Online (Sandbox Code Playgroud)

这将完美地打开电子邮件,但没有附件正常工作.路径应该是/Web/Temp/123.pdf.

如果我使用与下面的普通网址相同的路径,它会在新窗口中正确打开文件.

ClientScript.RegisterStartupScript(this.GetType(), "newWindow", "window.open('/Web/Temp/123.pdf');", true);
Run Code Online (Sandbox Code Playgroud)

因此,显然文件存在,但它存在于服务器上.另一方面,Outlook在客户端计算机上打开.所以,我不能使用完全确定的路径C:\Web\Temp\123.pdf.如果我尝试,它将尝试在客户端计算机上找到该文件,文件夹本身可能不存在.

我想弄清楚我能在这做什么.如果有另一种方法我应该尝试.

PS不,我不能直接发送电子邮件.这对我来说将来会造成更大的问题.

编辑:我也发现了一个奇怪的问题.如果我在附件中的文件路径中添加双引号,则会自动添加\.@"&attachment=""" + Server.MapPath(emailAttachment) + @"""');"给我输出为&attachment=\"C:\Web\Temp\123.pdf\".

我试图逃避这个双引号,并以某种方式添加斜线.我知道这是一个完全不同的问题,但我想在这里应该提一下,而不是创建一个新问题.

编辑:我尝试了localhost上的固定路径.所以,我基本上是在存储文件的同一台机器上测试应用程序.仍然没有任何依恋.

string emailJS = "";

emailJS += @"window.open('mailto:jitendragarg@gmail.com?body=Test Mail" + emailAttachment + @"&attachment=";
emailJS += @"""D:\Dev\CSMS\CSMSWeb\Temp\635966781817446275.Pdf""');";
//emailJS += Server.MapPath(emailAttachment) + @"');";
//Register the script …
Run Code Online (Sandbox Code Playgroud)

c# asp.net

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

文本框是否将所有数字文本保存为长或字符串?

我和我的队友就此进行了简短的讨论.他说,如果我在文本框中输入一个数字,并尝试稍后使用textbox.text或val(textbox.text)来使用该值,我将不需要将该值解析为整数.据他说,如果text属性值是全数,你可以直接得到整数值,而不是字符串.

所以,如果我有textBox1.Text = "12345",那么下次,如果我使用intABC = textBox1.Text,它不会抛出错误.这样对吗?C#或其他.Net语言是否进行了隐式转换?此外,代码存储"12345"为字符串还是整数?这个值占用多少内存,5个字符为5个字节,整数为2个字节?

.net c# memory-management variable-types winforms

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

在C#中重新抛出异常

我有一些代码捕获异常,回滚事务然后重新抛出异常.

catch ( Exception exSys )   {
    bqBusinessQuery.RollBackTransaction();
    throw exSys ;
}
Run Code Online (Sandbox Code Playgroud)

如果我使用此代码,VS代码分析会抛出警告说

使用不带参数的'throw',以保留最初引发异常的堆栈位置.

如果我使用代码

catch ( Exception exSys )   {
    bqBusinessQuery.RollBackTransaction();
    throw;
}
Run Code Online (Sandbox Code Playgroud)

然后我收到警告说

变量'exSys'已声明但从未使用过

我该如何解决这个问题?

编辑 我试过这个方法,但它不起作用.system.exception类需要额外的消息以及内部异常.如果我这样做,它将抛出一条新消息,覆盖原始异常中的消息.我不想得到新的异常,我想用相同的消息抛出相同的异常.

    catch (System.Exception ex)
    {
        throw new System.Exception(ex);
    }
Run Code Online (Sandbox Code Playgroud)

编辑

        catch (System.Exception ex)
        {
            throw new System.Exception("Test",ex);
        }
Run Code Online (Sandbox Code Playgroud)

尝试过这种方法.然后使用手动导致异常throw new Exception("From inside");.现在,ex.Message返回"Test"而不是"From inside".我希望保留"从内部"消息.这种建议的更改会导致错误显示代码无处不在.:/

c# exception-handling try-catch rethrow

0
推荐指数
2
解决办法
1419
查看次数