我应该在WPF中进行一些我不熟悉的小图形更改.xaml中有这个代码
<DataGrid x:Name="dtGridReads" AutoGenerateColumns="False"
VirtualizingStackPanel.IsVirtualizing="True"
VirtualizingStackPanel.VirtualizationMode ="Standard"
EnableColumnVirtualization="True"
EnableRowVirtualization="True"
ScrollViewer.IsDeferredScrollingEnabled="True"
CanUserReorderColumns="False" CanUserResizeColumns="False" CanUserSortColumns="True"
ItemsSource ="{Binding}" Block.TextAlignment="Center"
AlternatingRowBackground="LightGoldenrodYellow" RowBackground="White"
CanUserAddRows="False" CanUserDeleteRows="False" FrozenColumnCount="1"
GridLinesVisibility="None" Style="{StaticResource ConcensusDataGridStyle}">
</DataGrid>
Run Code Online (Sandbox Code Playgroud)
在.cs文件中,我发现我可以更改数据的fontSize.但是,我似乎无法找到将标题字体缩小的位置/方式.我正在尝试保存不动产并收缩DataGrid,但是我找不到将列缩小的位置,以及第一行中标题的文本更小.谢谢.
编辑:好的我发现我只能更改DataGrid中的FontSize.
我有一个System.Windows.Controls.DataGrid,其属性CanUserResizeColumns分配给True.现在,我可以通过使用鼠标左键单击2列标题来调整列的宽度.
但我还希望能够更改dataGrid的任何行中的列的宽度,而不仅仅是在列标题中.可能吗?
我有一个ListView
用于显示字段列表的wpf; 基于属性值,某些字段可以在运行时折叠.它的工作正常,但ListVIew不会折叠为在运行时折叠的ListViewItem保留的空间.
我能够在Snoop中看到额外的ListViewItems(可见性为折叠),ListView也会向上移动项目,但它不会调整其高度以移除空白区域!
我可以肯定地说,由于VirtualizedStackPanel
将ItemsPanel更改为StackPanel解决了这个问题,这种情况正在发生.这是相关的ListView
XAML:
<ListView
x:Class="Wizards.FieldBinderModelListView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Margin="0"
VerticalAlignment="Top"
HorizontalContentAlignment="Stretch"
VerticalContentAlignment="Top"
Background="White"
BorderThickness="0"
Grid.IsSharedSizeScope="True"
KeyboardNavigation.DirectionalNavigation="Continue"
Padding="1"
ScrollViewer.HorizontalScrollBarVisibility="Hidden"
ScrollViewer.VerticalScrollBarVisibility="Hidden"
SelectionChanged="ListViewSelectionChanged"
SelectionMode="Single">
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<!--Works fine with StackPanel but not with VirtualizingStackPanel
Explicitly added this PanelTemplate to show that it works with
StackPanel;ListView uses VirtualizingStackPanel as default panel
and causes same problem-->
<!--<StackPanel Orientation="Vertical" VerticalAlignment="Top"/>-->
<VirtualizingStackPanel Orientation="Vertical"
VerticalAlignment="Top"/>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Foreground" Value="Black" />
</Trigger>
<DataTrigger Binding="{Binding …
Run Code Online (Sandbox Code Playgroud) 我有以下代码:
<Color x:Key="SelectedColor">Gold</Color>
Run Code Online (Sandbox Code Playgroud)
以及包含颜色的TabItem样式
<VisualState x:Name="Selected">
<Storyboard>
<ColorAnimationUsingKeyFrames
Storyboard.TargetProperty="(Shape.Fill).(GradientBrush.GradientStops)[0].(GradientStop.Color)"
Storyboard.TargetName="InnerRectangle2">
<EasingColorKeyFrame KeyTime="0" Value="{DynamicResource SelectedColor}"/>
</ColorAnimationUsingKeyFrames>
Run Code Online (Sandbox Code Playgroud)
事实证明我不能使用DynamicResource
一个EasingColorKeyFrame
.
我能做些什么来达到我的效果?
我需要动态设置颜色,所以才换"{DynamicResource SelectedColor}"
用"{StaticResource SelectedColor}"
是假表.
我已经创建了一个很小的解决方案来演示这个问题 - Selected Tab应该是Gold color,但它实际上是透明的,因为我猜VSM无法解析名为" SelectedColor
" 的颜色
我创造了这个DataTemplate
,但我无法弄清楚如何添加style
一个DataTrigger
到IMG变量。
我希望img根据Suppliers[i].Stock
(int)的值显示不同的图像
资源图标
Properties.Resources.InStock => Suppliers[i].Stock > 0
Properties.Resources.OutOfStock => Suppliers[i].Stock = 0
Properties.Resources.Unknown => Suppliers[i].Stock = null
Run Code Online (Sandbox Code Playgroud)
我的代码到目前为止。
private DataTemplate GetStockTemplate(int i)
{
var template = new DataTemplate();
var wp = new FrameworkElementFactory(typeof (WrapPanel));
wp.SetValue(FrameworkElement.HorizontalAlignmentProperty, HorizontalAlignment.Right);
wp.SetValue(WrapPanel.OrientationProperty, Orientation.Horizontal);
var tx = new FrameworkElementFactory(typeof (TextBox));
tx.SetBinding(TextBox.TextProperty, new Binding("Suppliers[" + i + "].Stock") {StringFormat = "{0:n0}"});
tx.SetValue(TextBoxBase.IsReadOnlyProperty, true);
tx.SetValue(Control.BorderThicknessProperty, new Thickness(0));
tx.SetValue(Control.BackgroundProperty, Brushes.Transparent);
tx.SetValue(TextBox.TextAlignmentProperty, TextAlignment.Right);
wp.AppendChild(tx);
var img = …
Run Code Online (Sandbox Code Playgroud) 如何在informix数据库中有效地复制表?我想做点什么
create table new_table as (select * from old_table)
Run Code Online (Sandbox Code Playgroud)
但这不起作用.
我正在尝试编写一个小脚本来通过gmail发送电子邮件.
我可以连接到gmail但是当我尝试hanshake它失败了.
任何指针都可以获得握手吗?
这是代码:
import Network.Socket
import Network
import Network.TLS
import Network.TLS.Extra
import Crypto.Random
import Data.CertificateStore -- to remove
import System.Certificate.X509 --to use I think
import System.IO
import Text.Printf
import Control.Monad (forever)
import qualified Data.ByteString.Char8 as B
main :: IO ()
main = emailGmail2
tListen :: Context -> IO ()
tListen ctx =
forever $ recvData ctx >>= B.putStrLn
cWrite :: Handle -> String -> IO ()
cWrite h s = do
hPrintf h "%s\r\n" s
printf "> %s\n" s …
Run Code Online (Sandbox Code Playgroud) 我一直在尝试使用c ++/cx StorageFile::ReadAsync()
来读取商店应用程序中的文件,但它始终返回无效的params异常,无论什么
// "file" are returned from FileOpenPicker
IRandomAccessStream^ reader = create_task(file->OpenAsync(FileAccessMode::Read)).get();
if (reader->CanRead)
{
BitmapImage^ b = ref new BitmapImage();
const int count = 1000000;
Streams::Buffer^ bb = ref new Streams::Buffer(count);
create_task(reader->ReadAsync(bb, 1, Streams::InputStreamOptions::None)).get();
}
Run Code Online (Sandbox Code Playgroud)
我已打开所有清单功能,并为声明添加了"文件打开选取器"+"文件类型关联".有任何想法吗 ?谢谢!
ps:我找到的大多数解决方案都是针对C#,但代码结构类似......
我想在我的应用程序中实现拖动滚动功能,但在路上遇到了问题。有谁能够帮助我?我有一个 ScrollViewer,里面有一个 ItemsControl,在 ItemsTemplate 中我有一个 UserControl。我想将该 UserControl 拖动到 ItemsControl 中。当我拖动到 ItemsControl 的边界时,我希望 ScrollViewer 向下滚动。
protected override void OnPreviewMouseMove(System.Windows.Input.MouseEventArgs e)
{
if (this.IsMouseCaptured)
{
// Get the new mouse position.
Point mouseDragCurrentPoint = e.GetPosition(this);
if (Math.Abs(mouseDragCurrentPoint.Y - this.ActualHeight) <= 50)
{
this._scrollStartOffset.Y += 5;
_containingScrollViewer.ScrollToVerticalOffset(this._scrollStartOffset.Y);
}
if (mouseDragCurrentPoint.Y <= 50)
{
this._scrollStartOffset.Y -= 5;
_containingScrollViewer.ScrollToVerticalOffset(this._scrollStartOffset.Y);
}
}
base.OnPreviewMouseMove(e);
}
Run Code Online (Sandbox Code Playgroud)
当我通过调用DragDrop.DoDragDrop()
滚动开始拖动时不会发生。但是当我禁用拖动时,ScrollViewer 会根据鼠标位置向下滚动。也许在拖动和捕获鼠标时我没有考虑到一些事情?谢谢关注。加雷金
我创建了一个继承自WPF的自定义画布控件Canvas
.我在主窗口中使用它 -
<ScrollViewer
HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Auto">
<RTD:RTDesignerCanvas
Margin="5"
Background="White"
x:Name="canvas1"
Focusable="True"
AllowDrop="True">
</RTD:RTDesignerCanvas>
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)
一切正常,但是当我尝试像这样设置控件的位置时
Canvas.SetTop(item, 200);
滚动条不可见,控件隐藏在某处.有趣的是,如果我向其添加另一个控件滚动条是可见的,我可以向下滚动以查看上一个控件.
我试着用
base.InvalidateVisual();
base.UpdateLayout();
base.InvalidateArrange();
Run Code Online (Sandbox Code Playgroud)
更换物品后Top
或Left
没有任何反应; 我错过了什么或者由于某些错误而发生这种情况?
更新:
澄清,说我有有它的画布width
,height
100,100.现在,如果我用移动的控制(在画布上已添加),Canvas.SetLeft(myControl, 200)
然后它会移动到这是默认情况下不可见,并且滚动条也被禁止的位置,所以没有办法看到那种控制.
现在,如果我向Canvas添加另一个控件,ScrollBars会正确显示,我可以通过滚动查看上一个控件.