小编Tok*_*ans的帖子

Android在WPF中的涟漪效应

我喜欢Androids新动画,你触摸一个控件(listviewitem,按钮等等),它做了一个像这样的整洁动画:

在此输入图像描述

我想知道如何在全局范围内为WPF中的所有"可点击"控件实现这一点.


我特别需要帮助的是如何在控件上创建圆圈.我唯一想到的是为每个其他控件(按钮,单选按钮等)创建自己的用户控件,其中我有椭圆的父级以及原始控件本身.

<UserControl>
   <Grid MouseLeftButtonDown="handler">
      <Button/> <--- this would be the button which you normally would place
   </Grid >
</UserControl>
Run Code Online (Sandbox Code Playgroud)

而在handler-method随后创建点的椭圆e.GetPosition(handler)使用保证金性质,后来制作动画.该解决方案正常工作.但是,对于我希望产生连锁反应的每一个控件来说,这样做会很麻烦.基本上是这样的:

void handler(object sender, MouseButtonEventArgs e)
{
   Grid parent = (Grid)sender;
   Ellipse ellipse = new Ellipse();
   ellipse.Height = 10; // would be animated
   ellipse.Width = 10; // would be animated

   Point p = e.GetPosition(parent);

   ellipse.Margin = new Thickness(p.X, p.Y, 0, 0);

   parent.Children.Add(ellipse);

   // do the animation parts to later remove the ellipse
} …
Run Code Online (Sandbox Code Playgroud)

c# wpf xaml

26
推荐指数
2
解决办法
5509
查看次数

ASP .NET CORE无法使用自定义程序集查找文件或程序集

我遇到了一个奇怪的问题.

我基本上拥有自己的.NET-core网络堆栈,我已经将其构建到一些.dll中,我想从另一个ASP CORE解决方案中引用它们.

VS似乎找到了程序集,我可以在其中导航类型等.我也可以构建项目没有任何问题,但当IIS然后运行服务器时,我得到一个内部服务器错误说明:

FileNotFoundException:无法加载文件或程序集' myDLL,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'.该系统找不到指定的文件.

引用的DLL位于debug-folder中,真正奇怪的是如果我在与Web堆栈相同的解决方案中创建一个新的ASP Core项目,我可以毫无问题地引用和使用它.

为什么只有在web-stack解决方案之外的项目上运行时才会发生这种情况,我该怎样做才能让它在任何地方都可以运行?

c# .net-assembly .net-core asp.net-core

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

Visual Studio在XAML文件中发生更改后挂起

我最近遇到了一个奇怪的问题,它似乎是随机发生的.

当我在XAML文件中进行更改(它可以是任何内容,更改按钮中的文本,更改背景颜色等)时,我的visual studio会在启动程序时挂起.

有谁知道如何解决这个非常恼人的问题?

c# wpf xaml visual-studio-2013

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

如何在服务器端的React中访问JSX组件的DOM事件处理程序

我正在使用React构建一个简单的静态视图引擎,其目标是呈现静态HTML标记并生成一个填充了组件DOM事件(onClick等)的js文件.

我正在做第一部分的方式是需要一个指定的JSX文件,例如,如下所示:

import React from 'React';

export default class Test extends React.Component {

    clicked() {
        alert('Clicked the header!');
    }

    render() {
        return (
            <html>
                <head>
                    <title>{this.props.title}</title>
                </head>
                <body>
                    <h1 onClick={this.clicked}>click me!!!</h1>
                </body>
            </html>
        );
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我通过NodeJS-backend渲染JSX文件,如下所示:

let view = require('path-to-the-jsx-file');
view = view.default || view;

const ViewElement = React.createFactory(view);
let output = ReactDOMServer.renderToStaticMarkup(ViewElement(props));
Run Code Online (Sandbox Code Playgroud)

它非常适合提供静态HTML.但我想知道是否有办法在数组或其他东西中访问JSX文件中使用的所有组件,然后我可以使用它来检查绑定的事件和哪些处理程序.

那么在这个例子中,能够得到<h1>-tag的onClick-handler?这有可能以某种方式吗?

javascript jsx node.js reactjs

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

延迟加载列表视图中的可见项

我有一个使用以下代码的列表视图:

<ListView x:Name="Display" ItemsSource="{Binding}" Background="#373737" Margin="0,0,350,0" BorderThickness="0" >
        <ListView.ItemTemplate>
            <DataTemplate>
                <StackPanel Orientation="Horizontal" Width="767" Height="88">
                    <Border Height="64" Width="64" Margin="12,12,0,12">
                        <Image Source="{Binding Path=album.albumart}" Stretch="UniformToFill"/>
                    </Border>
                    <StackPanel Orientation="Vertical" VerticalAlignment="Top" Margin="0,10,0,0">
                        <TextBlock Text="{Binding Path=name}" 
                   Margin="10,0,0,0" Width="300" Height="40" 
                   TextTrimming="WordEllipsis" TextWrapping="Wrap" FontSize="16" HorizontalAlignment="Left"/>
                        <TextBlock Text="{Binding Path=album.name}" 
                   Margin="10,-15,0,0" Width="300" Height="20" 
                   TextTrimming="WordEllipsis" HorizontalAlignment="Left" 
                   FontSize="14" Opacity="0.49"/>
                        <TextBlock Text="{Binding Path=artistname}" 
                   Margin="10,2,0,0" Width="300"
                   TextTrimming="WordEllipsis" HorizontalAlignment="Left" 
                   FontSize="12" Opacity="0.49"/>
                    </StackPanel>
                </StackPanel>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>
Run Code Online (Sandbox Code Playgroud)

我有大约 400 个带有图像的对象(这需要相当多的内存)

然后显示在每个列表视图项中。

有什么方法可以让列表视图告诉项目从我拥有的缓存中加载它们的图像,这是基于哪些对象在列表视图中可见,而不是一直加载所有图像,如前所述,这需要相当多的内存.

希望大家明白我的意思,谢谢。

c# data-binding wpf xaml lazy-loading

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

使用正弦波动画圆的填充

我正在尝试使用正弦波制作一个圆形动画.这是我制作的示例图像:

示例图片.

所以黑色是圆圈,正如你所看到的那样,它以正弦波的方式切断.当正弦波在水平方向"行进"并决定波应该放置在圆圈的全高度的Y值时,你能做到这一点吗?(使它看起来像圆圈中的水在顶部创造波浪并且能够决定圆圈中有多少"水")

有办法做到这一点吗?也许有一些地方可以阅读这些类型的动画?

需要注意的一点是灰色背景代表透明度,因此圆圈的"截止"部分应该是透明的.

c# wpf animation

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

在WPF列表视图中逐项滚动

我有一个列表视图,它的高度非常小,但有3-4个listviewitems占用了Listview的整个大小(所以一次只能显示一个项目)

如果用户滚动它,列表视图一次不滚动1个项目,它一次滚动2个项目(单个滚动)

你会如何设置它1滚动=一个项目向下/向上?

希望我明白这一点,如果不是只是告诉我.

c# wpf xaml

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

在线程中使用 Dispatcher.BeginInvoke 时出现奇怪的线程异常

我正在一个线程中运行一个非常耗时的方法,它所做的一件事是,如果没有可用的图像,它会将名为 Background 的背景的网格设置为纯色。以下是该片段的外观:

SolidColorBrush scb = new SolidColorBrush();
scb.Color = Color.FromRgb(21, 21, 21);
Dispatcher.BeginInvoke(new Action(() => Background.Background = scb)); 
Run Code Online (Sandbox Code Playgroud)

但我总是在这个地方得到错误说 "Cannot use a DependencyObject that belongs to a different thread than its parent Freezable"

有谁知道为什么会这样?Dispatcher 应该让这个问题消失,对吧?

顺便说一下,这是我调用该方法的方式(如果需要)

Thread BGthread = new Thread(HandleBackgrounds);
BGthread.Start();
Run Code Online (Sandbox Code Playgroud)

c# multithreading dispatcher

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

更改Listview中的确切滚动位置

一直在网上搜索答案,但我没有发现任何这样做:

我想以编程方式更改WPF列表中的确切位置.有些说法

ListView.Scrollposition.Y = some value;
Run Code Online (Sandbox Code Playgroud)

我唯一能找到的是将值更改为Listview中的对象,而不是特定的坐标.如果有人在这个主题上有一些好文章或帖子,我将非常感激!

谢谢.

c# wpf

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

获取Visual Studio中特定变量使用的内存(ram)

我正在完成一个项目,但似乎有一些东西使用了太多的内存.我认为有些东西没有被处理掉.由于我的程序有很多代码,我不想通过所有内容.必须有一种方法可以看到什么变量在运行时使用了多少内存?

c# visual-studio-2012

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

选择列表中的所有对象

我有三个对象:

艺术家,专辑和曲目.

艺术家存储在List<Artist>Artist对象的内部和内部,还有另一个艺术家的专辑列表(List<Albums>)和Album对象中还有另一个曲目列表(List<Track>)

你会如何一次选择所有曲目?

有什么办法吗?

TrackList.AddRange(ArtistList.Albums.Tracks);
Run Code Online (Sandbox Code Playgroud)

到现在为止我一直这样做:

foreach (Artist artist in artistlist)
  {
     if (artist.Albums != null)
     {
       ForEach(Album album in artist.Albums)
       {
         Context.AddRange(album.Tracks);
       }
     }
   }
Run Code Online (Sandbox Code Playgroud)

c# list

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

打开文件时使我的程序成为"选择默认程序"

我正在制作音乐播放器.我基本上想知道的是如何让你的程序打开一个由资源管理器中的用户点击的文件.

例如:

我已经将我的音乐播放器设置为打开.mp3的deafult程序.当我双击音乐文件夹中的.mp3文件时,我希望我的程序打开并开始播放该歌曲.

但是这有什么作用呢?

提前致谢!

c# wpf file

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

动画网格的高度在Windows Phone 8.1中没有"运行"

我正在尝试创建一个简单的动画,其中网格从0高度动画设置为320.(这将产生幻灯片感觉),同时还可以从0-1和背面动画不透明度.

我创建了两个故事板并给了他们一个名字,这里是:

<Page.Resources>
    <Storyboard x:Name="OpenSettings" Storyboard.TargetName="SettingGrid">
        <DoubleAnimation Storyboard.TargetProperty="Height" Storyboard.TargetName="SettingGrid" To="320"/>
        <DoubleAnimation Storyboard.TargetProperty="Opacity" Storyboard.TargetName="SettingGrid" To="1"/>
    </Storyboard>
    <Storyboard x:Name="CloseSettings">
        <DoubleAnimation Storyboard.TargetProperty="Height" Storyboard.TargetName="SettingGrid" To="0"/>
        <DoubleAnimation Storyboard.TargetProperty="Opacity" Storyboard.TargetName="SettingGrid" To="0"/>
    </Storyboard>
</Page.Resources>
Run Code Online (Sandbox Code Playgroud)

我尝试从代码隐藏运行动画,如下所示:

private void AppBarButton_Click(object sender, RoutedEventArgs e)
    {
        if (settingsOpened)
        {

            CloseSettings.Begin();
            settingsOpened = false;
        }
        else
        {
            OpenSettings.Begin();
            settingsOpened = true;
        }

    }
bool settingsOpened = false;
Run Code Online (Sandbox Code Playgroud)

问题在于高度双重动画.它不会更改网格上的任何高度值.顺便说一句,Opacity动画效果很好.

有谁知道我怎么能解决这个问题?

这也是我试图制作动画的网格.请注意我是如何设置固定的起始值,这使得动画中的"from"属性变得不必要.

<Grid Opacity="1" Height="0" VerticalAlignment="Top" Name="SettingGrid" Background="#151515">
        <CheckBox Margin="10,0,0,0" Content="Use front camera" Height="80"/>
        <TextBlock Text="IP Address" Margin="10,70,10,0" FontSize="25" FontWeight="Light" Height="30" VerticalAlignment="Top"/>
        <TextBox Text="127.0.0.1" …
Run Code Online (Sandbox Code Playgroud)

c# wpf xaml windows-phone-8.1

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