c# nan width_c# nan - CSDN
精华内容
参与话题
  • C# WPF 控件通用属性简介

    千次阅读 2015-08-12 15:27:35
    1、高度和宽度 不同尺寸的默认值: MinHeight MaxHeight ...MaxWidth ...Width ...NaN/Auto (自动) 其他尺寸: DesiredSize RenderSize ActualHeight/Act

    1、高度和宽度

    不同尺寸的默认值:

    MinHeight MaxHeight Height
    MinWidth MaxWidth Width
    0 Infinity NaN/Auto
    (自动)

    其他尺寸:

    DesiredSize

    RenderSize

    ActualHeight/ActualWidth


    2、边框距离

    Margin:元素边界以外的空间大小

    Padding:元素边界以内的空间大小

    可以用1-4个数字来设置Margin和Padding的属性,数字相对应的属性顺序为:Left,Top,Right,Bottom

    相应C#代码:****.Margin = new Thickness(10);


    3、可见性

    Visibility

    值:

    可见:visible

    折叠:Collapsed(不占布局)

    隐藏:Hidden(占布局)


    4、对齐

    HorizontalAlignment:Left, Center, Right, Stretch(默认)

    VertiacalAlignment:Top, Center, Bottom, Stretch(默认)


    5、内容对齐

    HorizontalContentAlignment:Left(默认), Center, Right, Stretch

    VertiacalContentAlignment:Top(默认), Center, Bottom, Stretch


    6、流方向

    FlowDirection

    值:

    LefttoRight(默认):从左至右

    RighttoLeft:从右至左


    7、应用变换

    LayoutTransform:在对元素布局以前被应用

    RenderTransform:在结束布局后被应用(但在元素被渲染之前)

    RenderTransformOrigin:变换的开始点(默认为(0,0),左上角(0,1),右上角(1,0),右下角(1,1),中心(0.5,0.5)大于1位于元素之外)

    TransformGroup:组合变换,多种变换共存时,放于其间

    RotateTransform:旋转:

    旋转角度:Angle (默认为0)

    旋转的水平中心:CenterX(默认为0)(应用为RenderTransform才有效)

    旋转的垂直中心:CenterY(默认为0)(应用为RenderTransform才有效)


    ScaleTransform:扩大/缩小一个元素

    ScaleX:元素宽度的乘数(默认=1)

    ScaleY:元素高度的乘数(默认=1)

    CenterX:水平缩放的原点(默认=0)

    CenterY:垂直缩放的原点(默认=0)

    SkewTransform:倾斜

    AngleX:水平倾斜的角度(默认=0)

    AngleY:垂直倾斜的角度(默认=0)

    CenterX:水平倾斜的原点(默认=0)

    CenterY:垂直倾斜的原点(默认=0)

    TranslateTransform:平移

    X:水平移动量(默认=0)

    Y:垂直移动量(默认=0)

    MatrixTransform:自定义2D变换

    8、Opacity 控件透明度

    9、BorderThickness 控件边线宽度

    10、Padding指的是控件内部内容与控件边界的间隙。当内部控件的位置接近控件边缘时有提示。


    10、Effect特效

    Blend的特效都在Microsoft.Expression.Media.Effects里,用之前添加一下引用。

    可以在前台选中对象后直接点击Effect新建一种特效,也可以在后台设置。

    eg:TwistAmount是旋窝的效果。

    1. using Microsoft.Expression.Media.Effects;  

    1. private void button1_Loaded(object sender, RoutedEventArgs e)  
    2.         {  
    3.             SwirlEffect effect = new SwirlEffect();  
    4.             effect.TwistAmount = 36;  
    5.             button1.Effect = effect;  
    6.         }  


    展开全文
  • 一、下午在搞MVC和EXTJS的日期格式互相转换遇到了问题,我们从.NET服务器端序列化一个DateTime对象的结果是一个字符串格式,如 '/Date(1335258540000)/' 这样的字串。  整数1335258540000实际上是一

    参考文章:(http://www.cnblogs.com/milo-xie/archive/2012/04/24/2468660.html)

    一、下午在搞MVC和EXTJS的日期格式互相转换遇到了问题,我们从.NET服务器端序列化一个DateTime对象的结果是一个字符串格式,如 '/Date(1335258540000)/' 这样的字串。

      整数1335258540000实际上是一个1970 年 1 月 1 日 00:00:00至这个DateTime中间间隔的毫秒数。通过javascript用eval函数可以把这个日期字符串转换为一个带有时区的Date对象,如下

    用var date = eval('new ' + eval('/Date(1335258540000)/').source) 这样即可得到一个JS对象

    通过alert(date)查看比较清楚。

    Tue Apr 24 17:09:00 UTC+0800 2012 

    上面是C# JSON序列化日期自动得到的字符串,也可以通过C#写一个函数来获取这个数字,例如

    ?
    1
    2
    3
    4
    5
    6
    7
    public long MilliTimeStamp(DateTime TheDate)
            {
                DateTime d1 = new DateTime(1970, 1, 1);
                DateTime d2 = TheDate.ToUniversalTime();
                TimeSpan ts = new TimeSpan(d2.Ticks - d1.Ticks);
                return (long)ts.TotalMilliseconds;
            }

     通过上面的函数跟利用JSON序列化获取到的字符串中的整数是一样的。

    但是,在从客户端返回服务器端的时候,日期却遇到了问题,如何将javascript的Date对象传回服务器端呢?

    先通过javascript Date中的getTime()来获取到这个整数,然后服务器端对这个整数进行解析,‘构造’成一个C#的DateTime对象。思路大概是这样的,不过在逆向回去的时候却遇到了点麻烦。

    public DateTime ConvertTime(long milliTime)
            {
                long timeTricks = new DateTime(1970, 1, 1).Ticks + milliTime * 10000 ;
                return new DateTime(timeTricks);
            }

    通过ConvertTime得到的结果发现时间少了8个小时,这刚好是服务器的时区,东八区时间,也就是说还要加上8小时的纳秒,因为C#的时间戳单位是一千万分之一秒,一个小时3600秒,即8*3600*10000000

    所以修改了ConvertTime函数,正确的如下:

    1 public DateTime ConvertTime(long milliTime)
    2         {
    3             long timeTricks = new DateTime(1970, 1, 1).Ticks + milliTime * 10000 + TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now).Hours * 3600 * (long)10000000;
    4             return new DateTime(timeTricks);
    5         }

    部分源码如下:

    字段(Fields):

                                        <ext:RecordField Name="DatedDate" DateFormat="Y/m/d"/>
                                        <ext:RecordField Name="ExpiringDate" DateFormat="Y/m/d"/>

    列模型(ColumnModel):

                            <ext:Column ColumnID="DatedDate" Header="起息日" DataIndex="DatedDate">
                                <Renderer Handler="return Ext.util.Format.date(eval('new ' + eval(value).source),'Y年m月d日')" />
                            </ext:Column>
                            <ext:Column ColumnID="ExpiringDate" Header="到期日" DataIndex="ExpiringDate" Hidden="false">
                                <Renderer Handler="return Ext.util.Format.date(eval('new ' + eval(value).source),'Y年m月d日')" />
                            </ext:Column>


    异步加载:

                        <ext:Store ID="storeResult" runat="server" RemoteSort="true" AutoLoad="false">
                            <Proxy>
                                <ext:HttpProxy Json="true" Method="POST" Url="../metadata/WebService.asmx/QueryPagingGeneral">
                                </ext:HttpProxy>
                            </Proxy>
                            <AutoLoadParams>
                                <ext:Parameter Name="start" Value="={0}" />
                                <ext:Parameter Name="limit" Value="={30}" />
                            </AutoLoadParams>
                            <BaseParams>
                                <ext:Parameter Name="filter" Value="" Mode="Value" />
                            </BaseParams>
                            <SortInfo Field="ID" Direction="ASC" />
                            <Reader>
                                <ext:JsonReader IDProperty="ID" Root="d.Data" TotalProperty="d.TotalRecords">
                                    <Fields>

                                     ...

                                   </Fields>

    异步调用方法(webservice):[System.Web.Script.Services.ScriptService]必须要加.

        [WebMethod(EnableSession = true)]
        public Paging<ProductInfo> QueryPagingGeneral(int start, int limit, string sort, string dir, string filter)
        {
            ImportDataService _service = new ImportDataService();
            Hashtable ht = Session["QueryGeneral"] as Hashtable;
            if (ht == null)
            {
                ht = new Hashtable();
            }
            ht["PageStart"] = start;
            ht["PageEnd"] = start + limit;
            int total = _service.GetProductCountForRemote(ht);
            IList<ProductInfo> models = _service.GetProductListForRemote(ht);
            foreach (ProductInfo item in models)
            {
                item.ProductName = "<a href='ProductDetails.aspx?pagename=general&PID=" + item.ID + "&pageindex=" + (start/limit+1) + "'>" + item.ProductName + "</a>";
            }
            return new Paging<ProductInfo>(models, total);
        }

    二、0NaN年NaN月NaN,这一问题在ie8中出现,其他版本没有出现,其他浏览器也没有出现,这是ie浏览器版本之间的兼容性问题。解决方法:

    添加类型属性Type=“Date”

    代码如下:

    <ext:GridPanel ID="GridPanel1" runat="server" Title="报告列表</font>" Margins="0 0 5 5"
                    Icon="UserSuit" Region="Center" Frame="true" StripeRows="true">
                    <Store>
                        <ext:Store ID="storeResult" runat="server">
                            <Reader>
                                <ext:JsonReader IDProperty="ID">
                                    <Fields>
                                        <ext:RecordField Name="ID" />
                                        <ext:RecordField Name="Title" />
                                        <ext:RecordField Name="Author" />
                                        <ext:RecordField Name="PublishTime" Type="Date" />
                                        <ext:RecordField Name="ReportType" />
                                        <ext:RecordField Name="DownloadCount" />
                                        <ext:RecordField Name="Path" />
                                    </Fields>
                                </ext:JsonReader>
                            </Reader>
                            <AutoLoadParams>
                                <ext:Parameter Name="start" Value="0" Mode="Raw" />
                                <ext:Parameter Name="limit" Value="30" Mode="Raw" />
                            </AutoLoadParams>
                        </ext:Store>
                    </Store>
                    <ColumnModel ID="ColumnModel1" runat="server">
                        <Columns>
                            <ext:RowNumbererColumn Width="40px" Header="序号" Align="Center" />
                            <ext:Column ColumnID="Title" Header="标题" DataIndex="Title" Align="Center" Width="200px" />
                            <ext:Column ColumnID="Author" Header="撰写人" DataIndex="Author" Align="Center"/>
                            <ext:Column ColumnID="ReportType" Header="类型" DataIndex="ReportType" Align="Center" />
                            <ext:Column ColumnID="PublishTime" Header="发布日期" DataIndex="PublishTime" Align="Center" >
                            <Renderer Fn="Ext.util.Format.dateRenderer('Y年m月d日')" />
                            </ext:Column>
                            <ext:Column ColumnID="DownloadCount" Header="下载次数" DataIndex="DownloadCount" Align="Center" />
                            <ext:Column ColumnID="Path" Header="下载" DataIndex="Path" Align="Center" />
                        </Columns>
                    </ColumnModel>
                    <SelectionModel>
                        <ext:RowSelectionModel ID="RowSelectionModel1" runat="server">
                        </ext:RowSelectionModel>
                    </SelectionModel>
                    <View>
                        <ext:GridView ID="GridView1" runat="server" ForceFit="true" MarkDirty="false" />
                    </View>
                    <BottomBar>
                        <ext:PagingToolbar ID="PagingToolbar1" runat="server" PageSize="30" HideRefresh="true" />
                    </BottomBar>


                    <LoadMask ShowMask="true" />
                </ext:GridPanel>

    三、如果<ext:RecordField Name="PublishTime" Type="String"/>的数据类型是String,而不是Date,同样会产生上述问题,尤其是日期格式为xxxx-xx-xx时,

    要将“-”分隔符转换为“/”

                            <ext:Column ColumnID="PublishTime" Header="发布日期" DataIndex="PublishTime" Align="Center" >
                                <Renderer Handler="if(value)return Ext.util.Format.date(new Date(value.replace('-','/')),'Y年m月d日');else return value;" /> <%--对空字符串过滤-->
                            </ext:Column>

    日期转换参考:

    【1】js毫秒时间转换成日期时间

    var oldTime = (new Date("2012/12/25 20:11:11")).getTime(); //得到毫秒数  

    //不是上面格式的时间需要转换

       //starttime ='2012-12-25 20:17:24';
        starttime = starttime.replace(new RegExp("-","gm"),"/");
        var starttimeHaoMiao = (new Date(starttime)).getTime(); //得到毫秒数

    【2】毫秒数转化为时间

    var oldTime = (new Date("2012/12/25 20:11:11")).getTime(); //得到毫秒数  
    var newTime = new Date(oldTime); //就得到普通的时间了 

    参考:http://blog.csdn.net/qq435792305/article/details/7973751

     

    到此问题解决。

    展开全文
  • listview自适应列宽(根据内容长度)

    千次阅读 2018-04-03 14:32:20
    GridView gv = HistorySendToShipMsgList.View as GridView; for (int i = 0; i &lt; gv.Columns.Count; i++) { gv.Columns[i].Width = gv.Columns[i].ActualWidth; ...
    GridView gv = HistorySendToShipMsgList.View as GridView;
                for (int i = 0; i < gv.Columns.Count; i++)
                {
                    gv.Columns[i].Width = gv.Columns[i].ActualWidth;
                    gv.Columns[i].Width = double.NaN;
                }
    展开全文
  • WPF:控件属性

    千次阅读 2012-02-23 17:20:44
    1、高度和宽度 不同尺寸的默认值: MinHeight MaxHeight Height ...MaxWidth ...Width ...NaN/Auto (自动) 其他尺寸: DesiredSize RenderSize ActualHeight/ActualWidth

    1、高度和宽度

    不同尺寸的默认值:

    MinHeight MaxHeight Height
    MinWidth MaxWidth Width
    0 Infinity NaN/Auto
    (自动)

    其他尺寸:

    DesiredSize

    RenderSize

    ActualHeight/ActualWidth


    2、边框距离

    Margin:元素边界以外的空间大小

    Padding:元素边界以内的空间大小

    可以用1-4个数字来设置Margin和Padding的属性,数字相对应的属性顺序为:Left,Top,Right,Bottom

    相应C#代码:****.Margin = new Thickness(10);


    3、可见性

    Visibility

    值:

    可见:visible

    折叠:Collapsed(不占布局)

    隐藏:Hidden(占布局)


    4、对齐

    HorizontalAlignment:Left, Center, Right, Stretch(默认)

    VertiacalAlignment:Top, Center, Bottom, Stretch(默认)


    5、内容对齐

    HorizontalContentAlignment:Left(默认), Center, Right, Stretch

    VertiacalContentAlignment:Top(默认), Center, Bottom, Stretch


    6、流方向

    FlowDirection

    值:

    LefttoRight(默认):从左至右

    RighttoLeft:从右至左


    7、应用变换

    LayoutTransform:在对元素布局以前被应用

    RenderTransform:在结束布局后被应用(但在元素被渲染之前)

    RenderTransformOrigin:变换的开始点(默认为(0,0),左上角(0,1),右上角(1,0),右下角(1,1),中心(0.5,0.5)大于1位于元素之外)

    TransformGroup:组合变换,多种变换共存时,放于其间

    RotateTransform:旋转:

    旋转角度:Angle (默认为0)

    旋转的水平中心:CenterX(默认为0)(应用为RenderTransform才有效

    旋转的垂直中心:CenterY(默认为0)(应用为RenderTransform才有效

    例:

                <Button>
                    Button1
                </Button>
                <Button RenderTransformOrigin="0.5,0.5" Background="GreenYellow">
                    <Button.LayoutTransform>
                        <RotateTransform Angle="30"/>
                    </Button.LayoutTransform>
                    Button Rotated 30
                </Button>
                <Button>
                    Button3
                </Button>

    ScaleTransform:扩大/缩小一个元素

    ScaleX:元素宽度的乘数(默认=1)

    ScaleY:元素高度的乘数(默认=1)

    CenterX:水平缩放的原点(默认=0)

    CenterY:垂直缩放的原点(默认=0)

    SkewTransform:倾斜

    AngleX:水平倾斜的角度(默认=0)

    AngleY:垂直倾斜的角度(默认=0)

    CenterX:水平倾斜的原点(默认=0)

    CenterY:垂直倾斜的原点(默认=0)

    TranslateTransform:平移

    X:水平移动量(默认=0)

    Y:垂直移动量(默认=0)

    MatrixTransform:自定义2D变换

    展开全文
  • [Point Cloud Library] 基本结构 PointCloud

    千次阅读 2012-08-06 11:22:52
    在PCL中最基本的数据类型是 PointCloud。这是一个模板类,意味着你需要指定它应该包含的数据类型。 例如: pcl::PointCloud cloud;...1.width 2.height 特别说明:当height设置为1时,表示点云数据是无
  • 在WPF中使用百分比的布局方式

    千次阅读 2015-08-16 09:52:25
    使用Grid布局中的“比重”的方式与数据绑定(Binding)的方式
  • 在WPF中,控件有Width 和 ActualWidth两个属性,二者的区别如下: ...如果没有设置,Width的值为NaN(Not a Number) ActualWidth:是控件Render的实际宽度,控件Render之前,它的值为0,。该属性是只读的。...
  • WPF初学者指南1-Layout

    千次阅读 2009-05-17 00:58:00
    WPF大家可能都不会陌生,出来两年了,可是在国内用的人还是比较少的,不过最近MS正在推出windows7它的界面很华丽,主要就是有wpf这个技术来展现。据说在美国很多以前使用flash转播的电视MS都在争取他们开始使用wpf。...
  • <RowDefinition MinHeight="200"/>
  • WPF教程(二十四)Canvas

    千次阅读 2016-10-22 17:55:43
    Canvas大概是最简单的面板了。在默认情况下,它什么都不做,你把控件放到它里面,然后通过具体的坐标来指定位置。 如果你之前使用过其他UI库如WinForms,Canvas会让你感觉很亲切。然而它趋向于使用绝对坐标来控制子...
  • Newtonsoft.Json Newtonsoft.Json 是.Net平台操作Json的工具,他的介绍就不多说了,笔者最近在弄接口,需要操作Json。 以某个云计算平台的Token为例,边操作边讲解。 Json 转为 Model 将 Model 转为 Json ...
  • 一、简介 本文将介绍用户控件UserControl与Page的区别,及两者的使用方法。 部分参考: https://www.cnblogs.com/lelehellow/p/6026766.html(重点) https://www.cnblogs.com/ZXdeveloper/p/4479721.html ...
  • C# picturebox 控件画图

    千次阅读 2020-06-13 17:27:15
    今天介绍一下 C# 用 picturebox 画坐标系 编译环境:VS2010 1.首先建立一个 Windows窗体应用程序 如下图1所示 建好后,就会出现一个窗体设计界面,可以在属性栏更改其名字,图标,Text……如下图2所示: 2.添加...
  • 小程序开发中遇到的问题—汇总

    万次阅读 多人点赞 2019-11-15 15:51:16
    小程序面试题 1.bindtap和catchtap的区别是什么? bind事件绑定不会阻止冒泡事件向上冒泡,catch事件绑定可以阻止冒泡事件向上冒泡 2.Js数组转成换字符串,强制转换成整数及转换成浮点数的函数分别是什么?...
  • ASP.NET购物车(源码下载)

    万次阅读 热门讨论 2010-09-30 18:04:00
    说明:该实例基于ASP.NET3.5使用Session实现购物车功能,商品的分类以及产品的管理功能不在此实现。 希望该实例能对对购物车功能实现不太清楚的开发人员起到抛砖引玉的功效:)。1、惯例——预览功能产品列表:购物车...
  • WPF自定义控件-按钮-DoubleAnimation动画

    千次阅读 2018-09-25 22:16:44
    最近在看Wpf的书,初了解Wpf,也没做过C#和Wpf的项目。 如果下述有不妥的地方请多多包含,有错误,还请指教。 原理 自定义控件继承Button,模板为两个重叠的Border 下面为其中一个样式的代码 自定义控件文件...
  • 一. 摘要  首先很高兴这个系列能得到大家的关注和支持,这段时间一直在研究Windows Azure,所以暂缓了更新,同时也本着想把它写好、宁缺毋滥的精神,在速度上自然也就慢了下来,这篇文章拖拖拉拉也经历了十多天才...
  • 小程序开发最重要、最经典面试题

    万次阅读 2019-04-30 10:06:20
    小程序面试题 1.bindtap和catchtap的区别是什么? bind事件绑定不会阻止冒泡事件向上冒泡,catch事件绑定可以阻止冒泡事件向上冒泡 2.Js数组转成换字符串,强制转换成整数及转换成浮点数的函数分别是什么?...
  • OpenCV Mat数据存储格式详解

    万次阅读 2014-11-10 11:18:27
    Mat_对应的是CV_8U,Mat_对应的是CV_8S,Mat_对应的是CV_32S,Mat_对应的是CV_32F,Mat_对应的是CV_64F,对应的数据深度如下: • CV_8U - 8-bit unsigned integers ( 0..255 )
  • (1)了解委托的概念c#中的委托像c/c++中的函数指针.一个多重委托可以订阅多个方法.一个委托可以在用来调用函数,具体调用哪个函数在运行的时候被确定.什么是委托?为什么需要他们?委托是c#中类型安全的,可以订阅一个或...
1 2 3 4 5 ... 20
收藏数 825
精华内容 330
关键字:

c# nan width