小编Bar*_*aal的帖子

在XAML中,如何将椭圆保持为圆?

我害怕XAML盲目.我正在开发一个MS Surface应用程序,我在ScatterViewItem(最终用户可以调整大小的容器)中有一个椭圆.我想保持椭圆为圆(宽度==高度)并保持尽可能大(对于椭圆的宽度/高度属性,应采用SVI宽度/高度的最小值).

优选仅使用XAML解决方案(使用属性触发器或类似方法).

一如既往地非常感谢您的帮助.

wpf triggers properties ellipse

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

在WPF中:Children.Remove或Children.Clear不释放对象

更新:我在另一台安装得更干净的机器上尝试了这个.我无法在那台机器上重现这一点.如果我发现有什么令人讨厌的(VSStudio)组件导致这种情况,我会告诉你.

我从后面的代码创建了一些UIElements,并期待垃圾收集来清理东西.但是,在我预期的时候,对象不会被自由编辑.我期待他们在RemoveAt(0)被释放,但他们只在程序结束时被释放.

从Canvas的Children集合中删除时,如何释放对象?

<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300"
    MouseDown="Window_MouseDown">
  <Grid>
    <Canvas x:Name="main" />
  </Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)

背后的代码是:

public partial class MainWindow : Window
{
  public MainWindow()
  {
    InitializeComponent();
  }

private void Window_MouseDown(object sender, MouseButtonEventArgs e)
{
  GC.Collect(); // This should pick up the control removed at a previous MouseDown
  GC.WaitForPendingFinalizers(); // Doesn't help either

  if (main.Children.Count == 0)
    main.Children.Add(new MyControl() { Background = Brushes.Yellow, Width = 100, Height = 50 });
  else
    main.Children.RemoveAt(0);
 }
}

public class MyControl …
Run Code Online (Sandbox Code Playgroud)

.net wpf garbage-collection memory-management

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

在.Net Winforms应用程序中共享图像列表

我想要一个图像列表的实例,我希望在我的应用程序中的所有表单(工具栏的图标)上共享.我已经看过之前提出的问题,人们提出了一个用户控件(这是不好的,因为它会创建图像列表的多个实例,从而创建不必要的对象和开销).

设计时间支持会很好,但不是很重要.

在Delphi中,这非常简单:创建一个DataForm,共享图像,然后就可以了.

那是否有C#/.Net/Winforms变体?

.net c# static share

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