小编Dav*_*mer的帖子

如何绑定RowDefinition的高度?

在此示例代码中,我试图抵消GridCanvas通过其行的高度位置.有谁看到我可能做错了什么?正如您所看到的,我尝试在xaml文件中移动绑定较低的位置,以防RowDefinitions首先需要定义.无论哪种方式,它似乎并不重要因为Canvas.Top总是0.

<Canvas>
   <Grid Canvas.Top="{Binding ElementName=DetailsRow, Path=ActualHeight}">
      <Grid.RowDefinitions>
         <RowDefinition x:Name="NameRow" />
         <RowDefinition x:Name="DetailsRow" />
      </Grid.RowDefinitions>
      <Button Grid.Row="0">Button</Button>
      <Button Grid.Row="1">Button</Button>

      <!-- I expected this to maybe work, but no dice
      <Canvas.Top>
         <Binding ElementName="DetailsRow" Path="ActualHeight" />
      </Canvas.Top>
      -->

   </Grid>
</Canvas>
Run Code Online (Sandbox Code Playgroud)

wpf grid height xaml binding

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

如何在执行MSBuild脚本的过程中暂停?

我试着用:

<Exec Command="pause" />
Run Code Online (Sandbox Code Playgroud)

但这不起作用.请帮忙暂停!

南.

msbuild

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

ListBoxItem IsSelected样式

我仍然没有得到它.你能否告诉我如何覆盖ListBox的默认行为.每次选择ListBoxItem时,都应更改Border的背景.不是整行的背景,而是仅指定边框的背景.

 <ListBox ItemsSource="{Binding Source={StaticResource AssetsViewSource}}">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <Border BorderThickness="2" BorderBrush="Black">
                    <StackPanel>
                        <TextBlock Text="Name: " />
                        <TextBlock Text="{Binding Name}" />
                    </StackPanel>
                </Border>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
Run Code Online (Sandbox Code Playgroud)

wpf styles listbox listboxitem

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

将对象绑定到WPF TreeView

我想知道如何将自定义数据类型绑定到TreeView.

数据类型基本上是包含其他arraylists的对象的arraylist.访问将看起来像这样:

foreach (DeviceGroup dg in system.deviceGroups)
    {
        foreach (DeviceType dt in dg.deviceTypes)
        {
            foreach (DeviceInstance di in dt.deviceInstances)
            {

            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

我希望TreeView看起来像这样:

DeviceGroup1

 --> DeviceType1
      --DeviceInstance1
      --DeviceInstance2
 --> DeviceType2
      --DeviceInstance1
Run Code Online (Sandbox Code Playgroud)

DeviceGroup2

 --> DeviceType1
      --DeviceInstance1
 --> DeviceType2
Run Code Online (Sandbox Code Playgroud)

c# data-binding wpf treeview

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

如何将多个UIElements(uilabel,uiimageview等)堆叠/放置在彼此之上?

我在屏幕上有几个UI元素(以编程方式),并且需要一种有效的方式为每个子视图提供z-index设置,因此我可以将某些元素叠加到其他元素上.

有人有解决方案吗?

iphone objective-c uiimageview uilabel uielement

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

TextBox.Text在WPF应用程序中泄漏内存

我有一个应用程序在数组数组上进行大量的数字运算.我将其设置为每100,000次操作以显示这些数字的状态.这只是应用程序仍处理的操作员的可视指示,以及完成的距离.

运行应用程序几个小时后,它会崩溃并出现OutOfMemoryExeption.我在上面运行了CLRProfiler,发现在TextBox中发生泄漏,显示了数组的当前状态......每次接口更新时,应用程序在Char []中构建~4K,每个位的堆栈跟踪挂起记忆是一样的.

这是WPF中的一个错误,还是我不知道应该做些什么来防止这种情况发生?我没有看到任何其他参考.因为无论如何这是一个非常耗费处理器的操作,如果我不必只显示数组的当前状态,我宁愿不必销毁和重建TextBox.

这是我能找到的唯一内存泄漏,但是由于所需的操作数量庞大,这对应用程序来说实际上是一个大问题,即使我只是降低了接口更新的频率.如果您需要更多信息,我会尽可能提供帮助,但请理解由于此应用程序的作用,我几乎不能发布任何源代码,我将不得不匿名化任何内容(删除任何指示应用程序的目的)我可以发布.

当通过CLR Profiler(DRASTICALLY降低性能)运行时,每2秒发生以下相同的跟踪(记住:100,000次操作)并且永远不会释放内存.当它在没有附加分析器的情况下运行时,更新之间的时间<1秒.

一次更新("Who Allocated")的跟踪是:

<root> :  3.7 kB    (100.00%)
 WpfApplication0.App::Main static void ():  3.7 kB    (100.00%)
  System.Windows.Application::Run int32 ():  3.7 kB    (100.00%)
   System.Windows.Application::Run int32 (System.Windows.Window):  3.7 kB    (100.00%)
    System.Windows.Application::RunInternal int32 (System.Windows.Window):  3.7 kB    (100.00%)
     System.Windows.Application::RunDispatcher Object (Object):  3.7 kB    (100.00%)
      System.Windows.Threading.Dispatcher::Run static void ():  3.7 kB    (100.00%)
       System.Windows.Threading.Dispatcher::PushFrame static void (System.Windows.Threading.DispatcherFrame):  3.7 kB    (100.00%)
        System.Windows.Threading.Dispatcher::PushFrameImpl void (System.Windows.Threading.DispatcherFrame):  3.7 kB    (100.00%)
         NATIVE FUNCTION ( UNKNOWN ARGUMENTS ):  3.7 kB    (100.00%)
          MS.Win32.HwndSubclass::SubclassWndProc int_ptr (int_ptr int32 int_ptr int_ptr): …
Run Code Online (Sandbox Code Playgroud)

c# wpf textbox memory-leaks

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

F#upcasting TextBlock到UIElement

出什么问题了:

let (x:UIElement) = upcast new TextBlock()
Run Code Online (Sandbox Code Playgroud)

错误是:此处需要类型为"System.ComponentModel.ISupportInitialize"且不可用.您必须添加对程序集'System,Version = 4.0.0 ....'的引用.

TextBlock UIElement ... 的子类型

请注意,执行错误消息所说明的内容确实可以解决问题,但为什么有必要做一些基本的转发?

.net f# uielement

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

如何在运行时获取WPF元素的维度而不在编译时指定它们

问题?

<UI:PanelBrowser Margin="12,27,12,32"></UI:PanelBrowser>
Run Code Online (Sandbox Code Playgroud)

WPF是荒谬的,因为在这种情况下不手动指定属性(例如宽度和高度)会导致它们具有值Doulbe.NaN.问题是我需要知道这个数字.我不打算在XAML中手动设置宽度和高度,因为这会阻止它调整大小.

给定上面的XAML(此对象是Border控件的简单子类),如何在运行时获取Width和Height属性的值?

编辑:

哇,我觉得很荒谬.我读到ActualWidthActualHeight,但他们一直为我返回0和0.原因是我在实际初始化之前在Framework Element的构造函数中测试了这些属性.希望这有助于遇到同样问题和测试谬误的人.:)

c# size wpf

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

wpf:如何水平和均匀地布置项目?

什么样的控件可以水平布局子项目,还可以统一调整项目大小以适应可用的水平空间?我正在替换树视图模板中的"ItemsPanelTemplate",并且stackpanel将以正确的方向放置项目,但不会调整它们的大小.网格将仅显示树视图中的第一个子项,并且缺少水平重定向的支持.

wpf layout

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

将画布停靠在其父对象中

如何将画布“停靠”在其父级中?

我有一个UserControl,其中包含一个画布。

<UserControl x:Class="MyUC"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         mc:Ignorable="d"              
         d:DesignHeight="300" d:DesignWidth="300">
    <MyCanvas x:Name="myCanvas" 
        Height="???" 
        Width="???{Binding RelativeSource={RelativeSource TemplatedParent}}" >
    </MyCanvas>
</UserControl>
Run Code Online (Sandbox Code Playgroud)

我在其中使用此自定义画布的WidthHeight属性。并且需要始终将这些属性“绑定”到父容器。

wpf canvas dock

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