小编And*_*erd的帖子

图像大小调整算法

我想编写一个函数来缩小图像的大小以适应指定的边界.例如,我想调整2000x2333图像的大小以适应1280x800.必须保持纵横比.我想出了以下算法:

NSSize mysize = [self pixelSize]; // just to get the size of the original image
int neww, newh = 0;
float thumbratio = width / height; // width and height are maximum thumbnail's bounds
float imgratio = mysize.width / mysize.height;

if (imgratio > thumbratio)
{
    float scale = mysize.width / width;
    newh = round(mysize.height / scale);
    neww = width;
}
else
{
    float scale = mysize.height / height;
    neww = round(mysize.width / scale);
    newh = height;
}
Run Code Online (Sandbox Code Playgroud)

它似乎工作.好吧......好像.但后来我试图将1280x1024图像调整为1280x800边界,它给了我1280x1024的结果(显然不适合1280x800).

有没有人有任何想法这个算法应该如何工作?

algorithm resize image

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

当左边距变为负值时,动画减慢

我试图让一个多边形完全从屏幕左侧移动,穿过屏幕,然后完全离开屏幕右侧,然后再返回.

我已经开始工作了.但是,出于某种原因,只要左边距变为负值,动画就会突然减慢.一旦左边距变为正,它就会再次加速.

为什么会这样?我怎么能阻止它?

这是完整的代码,用于演示:

<Window x:Class="Geometry.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">
    <Window.Resources>
        <PathGeometry x:Key="MyGeometry">
            <PathGeometry.Figures>
                <PathFigure>
                    <PathFigure.Segments>
                        <LineSegment Point="0.30,0" />
                        <LineSegment Point="0.70,1" />
                        <LineSegment Point="0.40,1" />
                        <LineSegment Point="0,0" />
                    </PathFigure.Segments>
                </PathFigure>
            </PathGeometry.Figures>
        </PathGeometry>
        <Storyboard x:Key="MovingAnimation">
            <ThicknessAnimationUsingKeyFrames RepeatBehavior="1:0:0" FillBehavior="HoldEnd" Storyboard.TargetName="_path" Storyboard.TargetProperty="Margin" >
                <DiscreteThicknessKeyFrame KeyTime="0:0:0" Value="-2.0,0,0,0"  />
                <LinearThicknessKeyFrame KeyTime="0:0:10" Value="1.0,0,0,0"  />
                <LinearThicknessKeyFrame KeyTime="0:0:20" Value="-2.0,0,0,0"  />
            </ThicknessAnimationUsingKeyFrames>
        </Storyboard>
    </Window.Resources>
    <Window.Triggers>
        <EventTrigger RoutedEvent="Window.Loaded">
            <BeginStoryboard Storyboard="{StaticResource MovingAnimation}" ></BeginStoryboard>
        </EventTrigger>
    </Window.Triggers>
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <StackPanel Grid.Row="0" Orientation="Horizontal">
            <Label>Margin:</Label>
            <TextBlock Text="{Binding …
Run Code Online (Sandbox Code Playgroud)

wpf animation margin

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

DataTrigger没有触发

我有以下xaml:

    <DockPanel>
    <DockPanel>
        <CheckBox IsChecked="{Binding Path=Test}" />
        <CheckBox IsChecked="{Binding Path=Test}" />
    </DockPanel>
    <DockPanel DockPanel.Dock="Left" Width="10" Background="Blue">
        <DockPanel.Style>
            <Style>
                <Style.Triggers>
                    <DataTrigger Binding="{Binding Path=Test}" Value="True">
                        <Setter Property="DockPanel.Background" Value="Yellow" />
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </DockPanel.Style>
    </DockPanel>
</DockPanel>
Run Code Online (Sandbox Code Playgroud)

现在 - 2个复选框正确链接 - 检查一个将检查另一个 - 但数据触发器根本没有触发.

我究竟做错了什么?

.net wpf xaml datatrigger

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

在没有获得锁的情况下测试锁?

我有物品,他们得到锁.我想测试他们是否被锁定而没有获得锁定.我们的想法是,如果我TryEnter()的话,我要Exit()如果true只正常检查锁定.

看起来像一个非常基本的问题,它是如何完成的?

c# multithreading locking exit

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

如果数据绑定控件不可见,则不应更新

我有一个WPF应用程序,设计遵循标准的MVVM模型.

当基础数据发生更改时,我的视图模型会触发PropertyChanged事件,以便控件可以更新.

我的主视图是一个制表符控件,因此大多数控件在任何时候都是不可见的.存在性能问题,我意识到大部分CPU时间专用于获取数据以更新不可见控件.(我的视图模型使用延迟评估,因此它会触发PropertyChanged事件,但在询问之前实际上并不计算最终的可显示属性).

WPF是否有标准的方法来处理这个问题?

理想情况下,如果一个不可见的控件收到一个相关的PropertyChanged事件,它应该只是想"我必须重新查询该属性一旦我再次可见 ".

data-binding wpf

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

ajax post - 我想更改Accept-Encoding标头值

我正在使用jQuery ajax通过HTTP POST调用我的WCF服务.响应是GZIP编码的,这会导致我的环境出现问题.(见这个问题).如果响应不是GZIP编码,一切都很好.

所以看着Fiddler,我看到jQuery生成的查询有以下标题:

Accept-Encoding: gzip,deflate,sdch
Run Code Online (Sandbox Code Playgroud)

如果,通过fiddler,我将此值更改为None,则响应不会被压缩,这就是我想要的.我需要做的就是更改"Accept-Encoding"标头中的值.

似乎无法通过.ajax命令更改此标头值.(见本论坛帖子).

任何人都可以告诉我有什么选项可以更改此标头值.

这是我目前的尝试.我的headers参数似乎被忽略了.

    $telerik.$.ajaxSetup({
        accepts: 'application/json, text/javascript, */*'
    });

    var parameters = {
        "playerId": args.playerId
    };

    var dataInJsonFormat = '{ "playerId": ' + args.playerId + '}';

    var ajaxCallParameters = {
        accepts: 'application/json, text/javascript, */*',
        async: true,
        cache: false,
        contentType: "application/json; charset=utf-8",
        url: "../Services/CmsWebService.svc/SendUpdateRequestToPlayer",
        headers: { "Accept-Encoding" : "None" },
        type: "POST",
        data: dataInJsonFormat,
        dataType: 'json',
        error: function (jqXHR, textStatus, errorThrown) {
            var errorString …
Run Code Online (Sandbox Code Playgroud)

ajax wcf jquery header

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

遇到未在枚举中定义的FileSystemRights值

我编写了一个应用程序来检查目录上的所有文件系统权限.

目录有许多访问规则(类型FileSystemAccessRule).

每个访问规则都有一个属性FileSystemRights,它是一个标志枚举.

运行时,我会遇到一个FileSystemRights268435456(以0x10000000十六进制表示).

这个值只是没有出现在枚举中!它实际上高于最高的单个标志值(Synchronize具有值0x100000).

有谁知道这是什么?

.net security ntfs

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

使用.NET生成具有给定扩展名的唯一临时文件名

可能重复:
如何使用.net创建具有特定扩展名的临时文件?

可以通过调用在.NET中创建临时文件

string fileName = System.IO.Path.GetTempFileName();
Run Code Online (Sandbox Code Playgroud)

这将在临时目录中创建一个扩展名为.TMP的文件.

如果您特别希望它有不同的扩展名怎么办?为了这个例子,假设我需要一个以.TR5结尾的文件.

明显的(和错误的)解决方案是打电话

string fileName = Path.ChangeExtension(Path.GetTempFileName(), "tr5"))
Run Code Online (Sandbox Code Playgroud)

这里的问题是:

  • 它仍然在temp目录中生成一个空文件(例如tmp93.tmp),现在它将无限期地挂起
  • 没有保证生成的文件名(tmp93.tr5)尚未存在

是否有一种简单而安全的方法来生成具有特定文件扩展的临时文件?

.net c#

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

如果一个div有"清楚:正确",那么它应该浮动到它的右边,不是吗?

我似乎对css"clear"关键字的含义感到困惑.

我有一些div元素,都是"float:left".第二个最后一个div元素也有"clear:right".我认为这将导致后续元素转到下一行.但对我来说,事实并非如此.

这是我的例子:

<div class="Section">
    <div class="Thumbnail"></div>
    <div class="Number">0</div>
    <div class="Title">ShopTVC Wallace and Gromit WOA 6Apr11</div>
    <div class="Duration">00:00:32</div>
</div>?
Run Code Online (Sandbox Code Playgroud)

看起来像这样:

在此输入图像描述

我试图使持续时间("00:00:32")显示在下一行,缩略图的右侧(蓝色矩形).

我知道我可以把最后三个div放到另一个容器div中,但这个问题的目的是要理解为什么"clear:right"不会阻止持续时间浮动在标题的右边.

这是CSS:

div.Section
{
    overflow:auto;
    background:cornsilk;
    border:2px solid navy;
    padding:12px;
}

div.Section div.Thumbnail
{
    width:64px;
    height:42px;
    background:SteelBlue;
    foreground:Navy;
}

div.Number
{
    width:16px;
    margin-left:6px;
}

div.Duration
{
    margin-left:22px;
}

div.Section div
{
    float:left;
}

div.Section div.Title
{
    color:DarkGreen;
    clear:right;
}
Run Code Online (Sandbox Code Playgroud)

当然还有jsfiddle链接:http://jsfiddle.net/8J7V6/3/

css css-float

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

显示与字符串模式匹配的所有服务名称

我正在尝试显示包含字符串"SQL"的所有已安装服务的名称(只是名称).例如,我想看

  • 的SQLAgent $ SQL2008_R2
  • SQLBrowser
  • SQLWRITER

所以我试试这个:

Get-WmiObject Win32_Service
Run Code Online (Sandbox Code Playgroud)

这将显示所有服务,但作为列表.

Exit Code : 0
Name      : ProtectedStorage
ProcessId : 664
StartMode : Manual
State     : Running
Status    : OK

Exit Code : 1077
Name      : QWAVE
ProcessId : 0
StartMode : Manual
State     : Stopped
Status    : OK
(etc...)
Run Code Online (Sandbox Code Playgroud)

这很好,但我只想看到这个名字.所以我键入:

Get-WmiObject Win32_Service | select-object Name
Run Code Online (Sandbox Code Playgroud)

我得到了我的期望:

sppuinotfy
SQLAgent$SQL2008_RT
SQLBrowser
SQLWriter
SSDPSRV
(etc ..)
Run Code Online (Sandbox Code Playgroud)

一切都很好.我采取下一步过滤名称只包括SQL相关的名称:

Get-WmiObject Win32_Service | select-object Name | select-string -pattern 'SQL'
Run Code Online (Sandbox Code Playgroud)

现在它令人困惑.这是我的输出:

@{Name=BcmSqlStartupSvc}
@{Name=MSOLAP$SQL2008_R2}
@{Name=MSSQL$SQL2008_R2}
(etc ...)
Run Code Online (Sandbox Code Playgroud)

为什么我得到这个输出,而不仅仅是名字?我应该输入什么才能获得名字?

powershell windows-services

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