标签: stackpanel

WPF StackPanel PNG捕获无法正确呈现

我正在尝试创建一个png捕获StackPanel,但是当我保存时,我得到一个扭曲的视图,其中所有内容都是黑色矩形,并且大小不正确.图像保存中的宽度和高度是正确的,但是所有内容都被强制到顶部并挤压在一起

<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Views="clr-namespace:POExpress.Views" x:Class="POExpress.MainWindow"
Title="My Window" Height="500" MinWidth="1000" Width="1000">
<Grid>
    <TabControl>
        <TabItem Header="My Epics">
            <Grid Background="#FFE5E5E5">
                <Border Margin="0,52,0,0" BorderThickness="1" BorderBrush="Black">
                    <ScrollViewer HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto">
                        <StackPanel x:Name="sp_ports" Orientation="Vertical"/>
                    </ScrollViewer>
                </Border>
                <Button x:Name="btn_capture" Content="Save to png" Margin="0,10,114,0" VerticalAlignment="Top" Height="31" Background="White" HorizontalAlignment="Right" Width="99" Click="Btn_capture_Click"/>
            </Grid>
        </TabItem>
    </TabControl>
</Grid>
Run Code Online (Sandbox Code Playgroud)

public RenderTargetBitmap GetImage()
{
    Size size = new Size(sp_ports.ActualWidth, sp_ports.ActualHeight);
    if (size.IsEmpty)
        return null;

    RenderTargetBitmap result = new RenderTargetBitmap((int)size.Width, (int)size.Height, 96, 96, PixelFormats.Pbgra32);

    DrawingVisual drawingvisual = new DrawingVisual();
    using (DrawingContext context = …
Run Code Online (Sandbox Code Playgroud)

c# wpf stackpanel

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

在StackPanel内部,WPF ToolBar Separator缩小为空

鉴于非常简单的wpf应用程序

<Window x:Class="Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="800">
    <Grid>
        <ToolBar Height="50" >
            <MenuItem Header="Test1" />
            <MenuItem Header="Test2" />

            <StackPanel Orientation="Horizontal">
                <Separator />
                <MenuItem Header="Test3" />
                <MenuItem Header="Test4" />
                <MenuItem Header="Test5" />
            </StackPanel>
        </ToolBar>
    </Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)

Separator元素缩小为空.如果我在StackPanel开始之前放置Separator,它就会显示出来.为什么会这样?是否有可以在某处应用的样式设置以避免这种情况?

wpf xaml toolbar stackpanel separator

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

如何循环WPF StackPanel静态项?

可能很容易,但我很难弄清楚这一点(谷歌似乎没有多大帮助).

如何遍历StackPanel中静态声明的元素(没有数据绑定 - 在xaml中声明元素)?

任何帮助赞赏!

wpf loops elements stackpanel

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

带有Click AND DoubleClick的WPF StackPanel

我需要能够处理WPF StackPanel上的双击单击事件.但是没有StackPanel的DoubleClick事件.我想在这两个EventHandler中做两个不同的操作.

知道怎么做吗?

谢谢

wpf click mouseevent stackpanel

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

在stackpanel WPF中排序元素

我有一个stackpanel,其中包含一些在运行时添加或删除的用户控件.这些元素有一个索引,当我新建它时,我需要保留这些元素,我需要保持这些元素按索引排序,所以我做了一个快速排序函数,根据索引对它们进行排序,但是在交换的行上

          y = items[i]; //y is a temp variable
          items[i] = items[j];
Run Code Online (Sandbox Code Playgroud)

我明白了

"指定的索引已在使用中.首先断开指定索引处的Visual子节点"

我尝试将它们复制到临时变量,从集合中删除它们然后使用UIElementCollection中的Insert函数将它们分配到它们的右侧索引,但后来我得到了

"指定的Visual已经是另一个Visual的子项或CompositionTarget的根"

是否有我需要的克隆元素或某些东西在某处丢失?

c# sorting wpf stackpanel

7
推荐指数
2
解决办法
8713
查看次数

将StackPanel背景设置为WP7选择的重音(主题)颜色

我想知道是否可以将StackPanel的背景设置为Windows Phone 7用户选择的重音(主题)颜色.我听说你应该使用样式,因此它可以用于当前xaml页面上的所有StackPanel.但是我有点迷茫.

我当前静态背景颜色的示例:

<StackPanel Width="400" Background="#FF1BA1E2" Margin="0, 10, 0, 0" Tag="ABC">
       <TextBlock Text="ABC" FontSize="50" Margin="10" />
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

我在这里先向您的帮助表示感谢.

PS:万一有人想知道十六进制值"#FF1BA1E2"是默认WP7蓝色重音(主题)的颜色.

xaml background-color stackpanel windows-phone-7

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

如何使WPF StackPanel适合网格单元格

我的WPF项目中有一个StackPanel控件,它位于Grid的第0列第2行.如何将StackPanel大小自动调整为该网格单元的大小?将StackPanel宽度和高度设置为"auto"只会将其大小调整为其内容.我可以明确地将其宽度和高度设置为数值,但我想知道是否有更清晰,更准确的方法.谢谢.

相关的XAML:

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="1*"/>
        <ColumnDefinition Width="1*"/>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="74*"/>
        <RowDefinition Height="74*"/>
        <RowDefinition Height="421*"/>
    </Grid.RowDefinitions>
    <Label Content="{StaticResource LoginWindow_Title}" Style="{StaticResource TitleH1}" Grid.ColumnSpan="2"/>
    <Label Content="{StaticResource LoginWindow_Subtitle}" Style="{StaticResource TitleH2}" Grid.Row="1" Grid.ColumnSpan="2"/>
    <Border BorderBrush="Black" BorderThickness="1" HorizontalAlignment="Center" Grid.Row="2" VerticalAlignment="Top">
        <StackPanel HorizontalAlignment="Left" Grid.Row="2" VerticalAlignment="Top">
            <Label Content="Log in"/>
        </StackPanel>
    </Border>
</Grid>
Run Code Online (Sandbox Code Playgroud)

c# wpf wpf-controls stackpanel

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

Stackpanel中的水平方向,Stackpanel宽度末尾的新行

假设我们有一个水平方向的Stackpanel,宽度为100px.

在里面我制作十一平方的画布图纸,宽度为10px.

这意味着最后一个方块将在视图之外,因为它将扩展stackpanel宽度10px.所以我希望这个方块在新的一行.

是否有控件可以做到这一点?困难的部分是Stackpanel将是动态的,所以如果我调整WPF窗口的大小,Stackpanel将是50px,将产生2个完整的方形线和第三个带有单个方形的线.

我希望这能成为现实.我怎样才能做到这一点?

谢谢你,乔纳坦

c# wpf xaml stackpanel

7
推荐指数
2
解决办法
4168
查看次数

有没有办法在WPF中更改绘制顺序

有没有办法在不改变StackPanel中这些控件的实际顺序的情况下更改StackPanel中控件的绘制顺序?

我问的原因是我们在按钮之间有一个边距为0的按钮栏.活动按钮与相邻按钮重叠(即边距设置为-10).这里的问题是稍后绘制右按钮,因此在顶部而不是活动按钮上绘制.

我担心我需要制作一个基于网格的自定义控件.

wpf draw stackpanel

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

如何在StackPanel中设置背景

请有人让我知道如何在xaml的堆栈面板背景中设置图像?我已经尝试了以下它抛出一个Background没有属性的错误Image

   <Button.ToolTip>
        <StackPanel Height="200" Width="200">
            <StackPanel Height="30" Width="200" Orientation="Horizontal" HorizontalAlignment="Left" VerticalAlignment="Top" >
                <StackPanel.Background>
                    <Image Source="E:\R\watermark9.bmp"></Image>
                </StackPanel.Background>
                <Image VerticalAlignment="Top"  Width="30" Height="30" Source="E:\My Projects\Interconnect_New\Interconnect\Resources\watermark9.bmp" Name="image1" />
                <TextBlock FontFamily="Aharoni" FontSize="24" FontWeight="Bold" Foreground="Black" TextWrapping="Wrap" VerticalAlignment="Top" Height="30" HorizontalAlignment="Right" Width="143">
                    <Run FontFamily="Andalus" FontSize="18" FontWeight="Normal" Text="Hello! Fancy Tip" />
                </TextBlock>
            </StackPanel>
          </StackPanel>
    </Button.ToolTip>
Run Code Online (Sandbox Code Playgroud)

c# wpf stackpanel

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