Tôi đã lừa xung quanh với lề và đệm và thấy rằng một giá trị âm được chấp nhận và mang lại hiệu quả tốt đẹp trong các trường hợp thích hợp. Ví dụ, nếu bạn có một biên giới với một đối tượng đầy và bạn muốn màu đối tượng đầy để vượt qua biên giới. Có ai khác không?WPF mẹo và thủ thuật đơn giản?
Trả lời
Tính bất động sản có sẵn như là một tỷ lệ phần trăm:
<Grid.RowDefinitions>
<RowDefinition Height="0.25*"/>
<RowDefinition Height="0.25*"/>
<RowDefinition Height="0.25*"/>
<RowDefinition Height="0.25*"/>
</Grid.RowDefinitions>
EDIT:
này hoạt động nhưng không phải là dấu hiệu của cách * chức năng tham số. Điều này:
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
cung cấp chức năng tương tự. Nếu bạn muốn một thứ gì đó khác với các hàng có độ cao bằng nhau, bạn có thể sử dụng:
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="2*"/>
<RowDefinition Height="3*"/>
<RowDefinition Height="4*"/>
</Grid.RowDefinitions>
sẽ chia chiều cao sẵn có cho 10 và duy trì chiều cao tương đối của mỗi hàng. Ngoài ra, các giá trị có thể là 0,1, 0,2, 0,3 và 0,4 hoặc bất kỳ giá trị tỷ lệ nào.
Bao gồm dấu ngoặc nhọn trong nội dung của điều khiển.
<Button Content="{}{This is not a markup extension.}"/>
Đặt một phong cách debug cung cấp tín hiệu thị giác:
<Window.Resources>
<Style x:Key="DebugGrid" TargetType="Grid">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="ShowGridLines" Value="True"/>
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>
<Grid Name="Grid"
Style="{StaticResource DebugGrid}"
Background="Black">...
Chèn dấu ngoặc kép trong nội dung:
<Button Name="Button"
Background="AntiqueWhite"
Content="{}{Background="AntiqueWhite"}"/>
Một tính năng mới của WPF giao với 3,5 SP1 là khả năng định dạng chuỗi của bạn trong khi ràng buộc. Nó giúp loại bỏ việc sử dụng IValueConverter
cho các trường hợp phổ biến như vậy. Dưới đây là một số ví dụ để giúp bạn đi mà tôi sao chép từ this blog post
<TextBox Text="{Binding Path=Double, StringFormat=F3}"/>
<TextBox Text="{Binding Path=Double, StringFormat=Amount: {0:C}}"/>
<TextBox Text="{Binding Path=Double, StringFormat=Amount: \{0:C\}}"/>
<TextBox>
<TextBox.Text>
<Binding Path="Double" StringFormat="{}{0:C}"/>
</TextBox.Text>
</TextBox>
Một Grid
với Background
trái như mặc định hoặc thiết lập với một bàn chải Transparent
sẽ không cháy, sự kiện IsMouseOver
trừ khi con trỏ qua một điều khiển chứa. Để đảm bảo sự kiện được kích hoạt trên chính điện thoại Grid
, hãy mô phỏng Transparency
bằng cách đặt Background
thành vùng chứa màu Background
.
không đúng cho nền Brushes.Transparent dưới dạng .net 4.0 ít nhất (tôi không biết các phiên bản trước), nhưng đúng với nền mặc định được đặt thành "{ x: Null} "và không hoạt động như Brushes.Transparent. tức là: nếu bạn muốn bẫy mouseDownEvent trên điều khiển nền trong suốt, bạn phải đặt nền của nó thành Brushes.Transparent – David
IsMouseOver
và IsMouseDirectlyOver
là các sự kiện khác nhau. IsMouseOver
phản hồi mọi chuyển động của chuột trong tầm kiểm soát và đó là trẻ em. IsMouseDirectlyOver
chỉ trả lời nếu con trỏ vượt quá quyền kiểm soát. Ví dụ: nếu bạn có nhãn nằm trong đường viền, sự kiện IsMouseDirectlyOver
cho Đường viền chỉ kích hoạt nếu con trỏ nằm phía trên Đường viền nhưng KHÔNG vượt quá Nhãn được chứa.
Không chắc liệu câu trả lời của bạn có trả lời được câu hỏi gốc hay không nhưng nó đã làm rõ những gì tôi đang tìm kiếm. (+1) – jpierson
Điều khiển với nền được đặt thành Trong suốt sẽ KHÔNG kích hoạt sự kiện IsMouseOver hoặc IsMouseDirectlyOver. Ví dụ, nếu một Border Background được đặt là Transparent nhưng BorderBrush = Blue và BorderWidth là <> 0, các sự kiện MouseOver sẽ tự cháy trong khi vượt qua Border nhưng không phải trong khi vượt qua phần bên trong của điều khiển.
Gỡ lỗi ràng buộc WPF.
Thêm truy tìm đối với tài sản bị ràng buộc:
<Window …
xmlns:diagnostics="clr-namespace:System.Diagnostics;assembly=WindowsBase"/>
<TextBlock Text="{Binding Path=Caption,
diagnostics:PresentationTraceSources.TraceLevel=High}"…/>
Bạn sẽ nhận được trong cửa sổ đầu ra nhiều chi tiết về các ràng buộc:
PropertyChanged event from SomeObject (hash=1)
SetValue at level 0 from SomeObject (hash= 1) using RuntimePropertyInfo(Field):
'False'
TransferValue - got raw value 'False'
TransferValue - using final value 'False'
// EDIT More Info here.
Ariel
Khách sạn là BorderThickness. Không có vấn đề bao nhiêu lần bạn gõ BorderWidth, nó sẽ không hoạt động!
Visibility
là một trong ba trạng thái System.Windows.Visibility liệt kê:
- Visible - Các yếu tố được kết xuất và tham gia vào bố cục.
- Đã thu gọn - Phần tử không hiển thị và không tham gia vào bố cục. Hiệu quả cho nó một chiều cao và chiều rộng là 0 và hành xử như thể nó không tồn tại.
- Ẩn - Phần tử ẩn nhưng tiếp tục để tham gia bố cục.
Padding
và Margin
được nhập bằng cú pháp được phân cách bằng dấu phẩy và có loại Độ dày. Họ có thể được nhập như:
- Padding = "5" (Padding là 5 trên tất cả bốn mặt)
- Padding = "5,10,15,20" (Padding được trái: Top 5: 10 Kích chuột phải : 15 Bottom: 20)
- Padding = "5,10" (Padding là 5 trên trái/phải và 10 trên Top/dưới)
Bạn cũng có thể phân định chúng theo không gian đơn giản. Đệm = "5 10 15 20" –
Cung cấp hàng độc đáo hoặc cột trong GridSplitter
để đảm bảo rằng nó không bị ẩn bởi các điều khiển khác và cư xử như mong đợi.
Đặt một tài sản trong Bộ luật Đằng sau một DynamicResource:
Border_Toolbar.SetResourceReference(BackgroundProperty, "Brush_ToolbarBackground")
Quyết định kích thước của một điều khiển dựa trên khác khi chạy.
<... Width="{Binding ElementName=referenceElement, Path=ActualWidth}" ../>
Điều này cũng có thể được thực hiện với Height/MaxHeight
v.v.
- 1. Mẹo và thủ thuật tối ưu hóa
- 2. Mẹo và thủ thuật đào tạo Qt
- 3. Mẹo và thủ thuật chuyên nghiệp
- 4. Phát triển GPS iPhone - Mẹo + Thủ thuật
- 5. Hiển thị flash: mẹo và thủ thuật tối ưu hóa
- 6. SQL Server - Từ đồng nghĩa Mẹo & Thủ thuật?
- 7. Mẹo/thủ thuật Windbg yêu thích của bạn là gì?
- 8. Mẹo và thủ thuật để tăng năng suất/hiệu quả với Team Foundation Server
- 9. Mẹo và thủ thuật tối ưu hóa hiệu suất của Regex
- 10. Eclipse Ganymede hack, gợi ý, mẹo, thủ thuật và thực hành tốt nhất
- 11. Mẹo và thủ thuật về tối ưu hóa truy vấn [SQL Server 2005]
- 12. Thuật toán băm hình ảnh nhanh và đơn giản
- 13. Thuật toán mã hóa đơn giản
- 14. Thuật toán giả ngẫu nhiên đơn giản
- 15. Câu hỏi định dạng WPF đơn giản
- 16. Tạo một Bảng đơn giản trong WPF?
- 17. Có mẹo/thủ thuật nào về việc sử dụng Subsonic với Asp.Net MVC Framework không?
- 18. Mẹo và thủ thuật để sử dụng các emacs để phát triển ruby trên đường ray ứng dụng
- 19. Thuật toán leo đồi ví dụ đơn giản
- 20. Thuật toán đề xuất/đề xuất đơn giản
- 21. Liên kết cho các thuật toán trò chơi đơn giản
- 22. Thuật toán khác biệt của từ đơn giản
- 23. Tối ưu hóa một thuật toán tìm kiếm đơn giản
- 24. Các vấn đề với thuật toán phụ thuộc đơn giản
- 25. Cách tạo một thuật toán Gradient Descent đơn giản
- 26. Tại sao thuật toán haskell đơn giản này lại chậm?
- 27. Cải tiến kỹ thuật tạo mẫu JavaScript đơn giản
- 28. Thuật toán để đơn giản hóa bề mặt 3D?
- 29. Khung mùa xuân theo các thuật ngữ đơn giản
- 30. Ví dụ về thuật ngữ LaTeX đơn giản
Ah, trình tiết kiệm thời gian xác định .. –