我需要找到一种绝对居中WPF中LayoutPanel内容的方法.我有两个文本块元素必须在面板的垂直和水平中心渲染,而不依赖于绝对高度和宽度.
这是我可以用一个元素轻松完成的事情,因为任何ContentControl都可以设置它的verticalContentAlignment属性,但是你只有一个子元素可以玩,而我又回到原点.
任何帮助都将受到大力赞赏.
我有一个UserControl
我用来显示UIElement
s 的列表.控件包含一个单独的ItemsControl
,它被ItemPanelTemplate
切换为一个水平StackPanel
,它被ItemsSource
绑定到一个DependencyProperty
暴露的UserControl
和它的ItemTemplate
设置UserControl.Resources
.
一切都很好,除了ItemTemplate
永远不会得到应用,我不明白为什么.完整的来源如下.
UserControl.xaml -
<UserControl x:Name="UC" x:FieldModifier="private" x:Class="ContentSliderControl.ContentSlider"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<UserControl.Resources>
<DataTemplate x:Key="pageTemplate">
<Border CornerRadius="10" Padding="5" Height="200" Width="200" Background="#333">
<ContentControl Content="{Binding}"/>
</Border>
</DataTemplate>
<ItemsPanelTemplate x:Key="template">
<StackPanel IsItemsHost="True"
Orientation="Horizontal"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
ScrollViewer.VerticalScrollBarVisibility="Disabled"/>
</ItemsPanelTemplate>
</UserControl.Resources>
<ItemsControl ItemsPanel="{StaticResource template}"
ItemTemplate="{StaticResource pageTemplate}"
ItemsSource="{Binding ElementName=UC,Path=Pages}"/>
Run Code Online (Sandbox Code Playgroud)
UserControl.xaml.cs -
[ContentProperty("Pages")]
public partial class ContentSlider : UserControl
{
public List<UIElement> Pages
{
get { return (List<UIElement>)GetValue(PagesProperty); …
Run Code Online (Sandbox Code Playgroud) 我有一个包含菜单的UserControl.我需要将Menu.Icon绑定到UserControl的属性,但它不起作用.
代码就像这样开始 -
<Border Grid.Row="0">
<DockPanel>
<Image x:Name="testImage" Height="16" Width="16" Source="{Binding ElementName=UC,Path=AddImage}"/>
<Menu DockPanel.Dock="Left" Height="20"
VerticalAlignment="Center">
<MenuItem Header="{Binding ElementName=UC,Path=AddText}">
<MenuItem.Icon>
<!--<Image x:Name="workswhenin" Height="16" Width="16" Source="pack://application:,,/Kowdox;component/Images/UserIcons/user_add.png"/>-->
<Image x:Name="realImage" Height="16" Width="16"
Source="{Binding ElementName=UC,Path=AddImage}"/>
</MenuItem.Icon>
</MenuItem>
Run Code Online (Sandbox Code Playgroud)
您看到的第一个图像声明(testImage)完美无缺,所以我很高兴绑定是正确的.第二个Image(注释掉并命名为'workswhenin')包含我传递给UserControls绑定属性的包URI,它也可以工作,但第三个(realImage)根本没有出现!
我看不出它为什么不起作用的任何理由; 我知道绑定是好的,我知道图像在标记中的位置是好的,所以发生了什么?
任何帮助将不胜感激.提前致谢.
好的,所以我学会了WPF和WCF,这很棒.我没有打扰CardSpace,因为它可能不会起飞.
我应该打扰Workflow,..值得吗?有什么大不了的?
前几天让我感到震惊的是,我对我期望运行软件的硬件几乎一无所知.我已经做了大约5年的开发,但自从我离开大学以来,我没有考虑过硬件理论/设计.我甚至不再建造自己的机器了,因为,老实说,我宁愿付出额外的一些钱,让Comp Sci辍学让我在店里建造它.
虽然它有什么引擎盖下正在进行的基础知识有很好的理解显然很重要,它是抽象,使远离我们,因为我们真的不需要与错综复杂假惺惺开发者Programmed I/O
或Memory-Mapped I/O
等..
或者我们呢?
请注意,我在谈论你的每日LOB开发人员,而不是专门的裸机人.
那么,定义"平均"你将如何,但总体而言,一个称职的程序员能够多深入潜水?
现在这可能比它的价值更麻烦但是,它现在对我来说真的很有用.
我想知道的是我如何在运行时操作Silverlight可视化树.做一些简单的事情,比如添加和删除控件都很容易,但是当你开始以任何合理的复杂度遍历树时,我发现自己渴望使用JQuery样式语法(我认为LINQ也很酷)来处理DOM节点替换,动作等.
所以我想问题是,是否有任何图书馆可以使这项工作变得更容易,或者是否有一些我错过的东西?
我有一个UserControl
基本上这样的包装ListBox
-
<ListBox x:Name="lb" ItemsSource="{Binding ElementName=UC,Path=Pages}"
Background="{Binding ElementName=UC,Path=Background}"
BorderBrush="Transparent"
ScrollViewer.CanContentScroll="False"
ScrollViewer.HorizontalScrollBarVisibility="Hidden"
ScrollViewer.VerticalScrollBarVisibility="Disabled">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" IsItemsHost="True"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Width="{Binding ElementName=UC,Path=ActualWidth}">
<Grid.ColumnDefinitions>
<ColumnDefinition MinWidth="20"/>
<ColumnDefinition/>
<ColumnDefinition MinWidth="20"/>
</Grid.ColumnDefinitions>
<ContentPresenter Grid.Column="1" Content="{Binding}"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Run Code Online (Sandbox Code Playgroud)
我需要设置FocusVisualStyle
来{x:Null}
隐藏这个功能,但无论在哪里应用它,我仍然得到默认的蓝色选择颜色.我已经尝试在ListBox,StackPanel和Grid上设置它,但无济于事.
任何帮助都会很棒.谢谢.
我有一个3D平面,我正在尝试用ImageBrush渲染,因为它是DiffuseMaterial.Brush.如果我使用SolidColorBrush,那么飞机看起来很好,但我对ImageBrush或VisualBrush都没有任何帮助.
谁能告诉我为什么?这是代码.
<ModelVisual3D>
<ModelVisual3D.Transform>
<RotateTransform3D CenterX="0" CenterY="0" CenterZ="0">
<RotateTransform3D.Rotation>
<AxisAngleRotation3D Axis="0 1 0" Angle="90"/>
</RotateTransform3D.Rotation>
</RotateTransform3D>
</ModelVisual3D.Transform>
<ModelVisual3D.Content>
<GeometryModel3D>
<GeometryModel3D.Geometry>
<MeshGeometry3D x:Name="frontmesh" TriangleIndices="
0 1 2
2 3 0">
<MeshGeometry3D.Positions>
<MultiBinding Converter="{StaticResource front}">
<Binding ElementName="UC" Path="CubeHeight" />
<Binding ElementName="UC" Path="CubeWidth" />
<Binding ElementName="UC" Path="CubeDepth" />
</MultiBinding>
</MeshGeometry3D.Positions>
</MeshGeometry3D>
</GeometryModel3D.Geometry>
<GeometryModel3D.Material>
<DiffuseMaterial>
<DiffuseMaterial.Brush>
<ImageBrush ImageSource="CF.jpg"
AlignmentX="Center" AlignmentY="Center"
Stretch="Fill"/>
</DiffuseMaterial.Brush>
</DiffuseMaterial>
</GeometryModel3D.Material>
</GeometryModel3D>
</ModelVisual3D.Content>
</ModelVisual3D>
Run Code Online (Sandbox Code Playgroud) 通用列表类有一个.ForEach(Action<T> action)
方法.现在我已经完成了一些关于它们如何表现的简单时间,似乎通用ForEach是较差的表演者.(Snippet Compiler Friendly)代码如下 -
public static class timer{
public static long foreachloop = 0;
public static long Gforeachloop = 0;}
public class something{
public List<string> myStrings = new List<string>();
public something()
{
for(int i = 1; i<=5000000;i++)
{
myStrings.Add(i.ToString());
}
}}
public class cls1{
private static List<string> Strings = new List<string>();
private static List<string> OtherStrings = new List<string>();
public static void RunSnippet()
{
something s = new something();
Stopwatch watch = new Stopwatch();
watch.Start();
foreach(string …
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种确保方法“ A”调用方法“ B”的方法。大致来说,这笔交易是..
class one
{
internal static void MethodA()
{
//Do Something here. SHOULD be calling B.
}
void MethodB()
{
//MUST be called by MethodA.
}
}
class two
{
internal void MethodA()
{
//Test that MethodA calls MethodB
}
}
Run Code Online (Sandbox Code Playgroud)
我应该指出,我为此坚持使用.Net 2.0,因此ExpressionTrees是不可行的。我什至不确定他们会帮忙,但这是我最初的想法。
编辑:这是一个内部工具,用于可视化源代码的循环复杂性,因此我不关心在这里破坏封装。此外,..很可能仅使用System.Reflection就必须完成此操作。
wpf ×5
.net ×2
c# ×2
3d ×1
alignment ×1
bare-metal ×1
binding ×1
datatemplate ×1
generic-list ×1
generics ×1
hardware ×1
imagebrush ×1
itemspanel ×1
itemtemplate ×1
layout ×1
menu ×1
performance ×1
reflection ×1
silverlight ×1
visual-tree ×1
visualbrush ×1
workflow ×1