คำถามติดแท็ก wpf

Windows Presentation Foundation หรือ WPF เป็นระบบย่อยสำหรับการแสดงผลส่วนต่อประสานกับผู้ใช้ในแอพพลิเคชั่นที่ทำงานบน Windows

9
แป้นพิมพ์ลัดใน WPF
ฉันรู้เกี่ยวกับการใช้_แทน&แต่ฉันกำลังดูCtrlทางลัดประเภท + ทั้งหมด Ctrl+ ZสำหรับเลิกทำCtrl+ Sเพื่อบันทึก ฯลฯ มีวิธี 'มาตรฐาน' สำหรับการนำสิ่งเหล่านี้ไปใช้ในแอปพลิเคชัน WPF หรือไม่? หรือเป็นกรณีของการม้วนของคุณเองและเชื่อมต่อกับคำสั่ง / การควบคุมใด ๆ ?

6
การสร้าง SolidColorBrush จากค่าสีฐานสิบหก
ฉันต้องการสร้าง SolidColorBrush จากค่า Hex เช่น #ffaacc ฉันจะทำเช่นนี้ได้อย่างไร? ใน MSDN ฉันได้รับ: SolidColorBrush mySolidColorBrush = new SolidColorBrush(); mySolidColorBrush.Color = Color.FromArgb(255, 0, 0, 255); ดังนั้นฉันจึงเขียน (พิจารณาว่าวิธีของฉันได้รับสีเป็น#ffaacc): Color.FromRgb( Convert.ToInt32(color.Substring(1, 2), 16), Convert.ToInt32(color.Substring(3, 2), 16), Convert.ToInt32(color.Substring(5, 2), 16)); แต่สิ่งนี้ทำให้เกิดข้อผิดพลาดเป็น The best overloaded method match for 'System.Windows.Media.Color.FromRgb(byte, byte, byte)' has some invalid arguments 3 ข้อผิดพลาดเช่น: Cannot …
129 wpf 

3
WPF: ItemsControl พร้อมแถบเลื่อน (ScrollViewer)
ฉันติดตาม"tutorial" ขนาดเล็กนี้เกี่ยวกับวิธีเพิ่ม scrollbar ไปยัง ItemsControl และใช้งานได้ในมุมมองออกแบบ แต่ไม่ใช่เมื่อฉันรวบรวมและเรียกใช้โปรแกรม (เฉพาะรายการแรก ๆ ที่ปรากฏขึ้นและไม่มีแถบเลื่อนเพื่อดูเพิ่มเติม - แม้แต่ เมื่อ VerticalScrollbarVisibility ตั้งค่าเป็น "มองเห็นได้" แทน "อัตโนมัติ") ความคิดเกี่ยวกับวิธีการแก้ปัญหานี้? นี่คือรหัสที่ฉันใช้เพื่อแสดงรายการของฉัน (ปกติฉันทำงานกับ Databinding แต่เพื่อดูรายการใน Designer ของฉันฉันเพิ่มด้วยตนเอง): <ItemsControl x:Name="itemCtrl" Style="{DynamicResource UsersControlStyle}"> <ItemsControl.ItemsPanel> <ItemsPanelTemplate> <StackPanel Orientation="Vertical" HorizontalAlignment="Center" VerticalAlignment="Top"> </StackPanel> </ItemsPanelTemplate> </ItemsControl.ItemsPanel> <uc:UcSpeler /> <uc:UcSpeler /> <uc:UcSpeler /> <uc:UcSpeler /> <uc:UcSpeler /> </ItemsControl> และนี่คือเทมเพลตของฉัน: …

7
ไม่มี Main () ใน WPF?
ฉันเป็นมือใหม่ในการเขียนโปรแกรม แต่ฉันแน่ใจว่าหนึ่งในกฎสากลคือโปรแกรมเริ่มต้นด้วย Main () ฉันไม่เห็นเมื่อฉันสร้างโครงการ WPF Main () ตั้งชื่อสิ่งที่แตกต่างกันใน WPF หรือไม่
128 c#  wpf  c#-4.0  main 

8
ฉันจะกำหนดสีของแถวที่เลือกใน DataGrid ได้อย่างไร
สีพื้นหลังเริ่มต้นของแถวที่เลือกใน DataGrid มืดมากจนอ่านไม่ออก มีการลบล้างมันหรือไม่? พยายามแล้ว <dg:DataGrid.RowStyle> <Style TargetType="{x:Type dg:DataGridRow}"> <Style.Triggers> <Trigger Property="IsSelected" Value="True" > <Setter Property="Background" Value="Gainsboro" /> </Trigger> </Style.Triggers> </Style> </dg:DataGrid.RowStyle> แต่ยังไม่มีอะไร ...
127 c#  wpf  xaml  datagrid 

3
พาเนลใดมีประสิทธิภาพสูงสุดในแง่ของเวลาในการแสดงผลและประสิทธิภาพ
มีหลายครั้งที่แผงมากกว่าหนึ่งแผงจะเหมาะกับเลย์เอาต์ที่ฉันต้องการอย่างไรก็ตามฉันรู้ว่าเวลาในการแสดงผลสำหรับประเภทแผงต่างๆมีความแตกต่างกัน ตัวอย่างเช่นMSDNระบุว่า ค่อนข้างง่ายPanelเช่นCanvasสามารถมีประสิทธิภาพที่ดีกว่าที่ซับซ้อนกว่าอย่างเห็นได้ชัดPanelเช่นGrid. ดังนั้นในแง่ของเวลาในการเรนเดอร์และประสิทธิภาพพาเนล WPF มีประสิทธิภาพมากที่สุดในลำดับใด แผง WPF: Canvas DockPanel Grid UniformGrid StackPanel WrapPanel VirtualizingPanel / VirtualizingStackPanel ฉันค่อนข้างแน่ใจว่าฉันเห็นรายการนี้ที่ไหนสักแห่งทางออนไลน์ แต่ตอนนี้ฉันหาไม่เจอ คำตอบที่ดีที่สุดที่ฉันกำลังมองหาคือให้รายการแผงควบคุมตามลำดับที่แสดงผลเร็วที่สุด ฉันเข้าใจว่าจำนวนเด็กเป็นปัจจัยสำคัญที่ทำให้แผงควบคุมมีประสิทธิภาพดังนั้นสำหรับคำถามนี้สมมติว่าแต่ละแผงมีเพียงคู่Label/ TextBoxคู่ นอกจากนี้ฉันต้องการรายการข้อยกเว้นเช่นแผงควบคุมเฉพาะที่ทำงานได้ดีกว่าแผงอื่น ๆ ตามเงื่อนไขบางประการ ปรับปรุง เพื่อสรุปตามคำตอบที่ยอมรับด้านล่างประสิทธิภาพของแผงควบคุมจะขึ้นอยู่กับจำนวนและรูปแบบของรายการย่อยอย่างไรก็ตามโดยทั่วไปรายการจากเร็วที่สุดไปยังช้าที่สุดคือ: Canvas StackPanel WrapPanel DockPanel Grid นอกจากนี้VirtualizingPanel/ VirtualizingStackPanelควรจะใช้ในกรณีที่มีจำนวนมากของรายการที่ไม่เคยพอดีกับหน้าจอ เราขอแนะนำให้คุณอ่านคำตอบที่ยอมรับด้านล่างสำหรับรายละเอียดเพิ่มเติมก่อนที่จะเลือกรายการจากรายการนี้



30
ไม่มีชื่อนี้ในข้อผิดพลาดเนมสเปซใน XAML
ใช้ VS2012 กับแอปพลิเคชัน VB.NET WPF ฉันมีแอพสอน MusicPlayer ง่ายๆที่ฉันใช้เพื่อเรียนรู้ WPF ฉันกำลังแปลงบทช่วยสอนเวอร์ชัน C # เป็น VB.NET ทีละขั้นตอน มี 2 ​​คลาสในแอพที่ทั้งสองอยู่ภายใต้เนมสเปซเดียวกัน ฉันสามารถอ้างอิงเนมสเปซใน XAML ได้ แต่เมื่อฉันพยายามอ้างอิงคลาสออบเจ็กต์ใน XAML ฉันได้รับข้อผิดพลาดและฉันไม่สามารถคอมไพล์ได้ สิ่งที่แปลกคือ IntelliSense ทำงานได้ดีกับทั้งการอ้างอิงเนมสเปซผ่านแท็ก xmlns: c = และเมื่อพิมพ์คลาสออบเจ็กต์โดยใช้ <c: แต่อ็อบเจ็กต์ถูกขีดเส้นใต้และเกิดข้อผิดพลาดขณะพยายามสร้างหรือทำงานในตัวออกแบบ ไฟล์คลาส. vb อยู่ในโฟลเดอร์ชื่อ \ Controls Namespace รูทโปรเจ็กต์หลักถูกปล่อยว่างไว้โดยเจตนา คลาสเขียนโค้ดแบบนี้ ... Namespace MusicPlayer.Controls Public Class UpdatingMediaElement .... code here …

3
การจำลองเสมือนของ ItemsControl?
ฉันมีItemsControlรายการข้อมูลที่ฉันต้องการจำลองเสมือนจริง แต่VirtualizingStackPanel.IsVirtualizing="True"ดูเหมือนจะใช้กับItemsControlไฟล์. เป็นเช่นนั้นจริงหรือมีวิธีอื่นในการทำเช่นนี้ที่ฉันไม่ทราบ? ในการทดสอบฉันใช้บล็อกโค้ดต่อไปนี้: <ItemsControl ItemsSource="{Binding Path=AccountViews.Tables[0]}" VirtualizingStackPanel.IsVirtualizing="True"> <ItemsControl.ItemTemplate> <DataTemplate> <TextBlock Initialized="TextBlock_Initialized" Margin="5,50,5,50" Text="{Binding Path=Name}" /> </DataTemplate> </ItemsControl.ItemTemplate> </ItemsControl> ถ้าฉันเปลี่ยนItemsControlเป็น a ListBoxฉันจะเห็นว่าInitializedเหตุการณ์นั้นดำเนินไปเพียงไม่กี่ครั้งเท่านั้น (ระยะขอบใหญ่มากดังนั้นฉันจึงต้องผ่านบันทึกไม่กี่รายการ) อย่างไรก็ตามเมื่อItemsControlทุกรายการเริ่มต้น ฉันได้ลองตั้งค่าItemsControlPanelTemplateเป็น a แล้วVirtualizingStackPanelแต่ดูเหมือนจะไม่ช่วยอะไร

5
การตั้งค่าไอคอนสำหรับแอปพลิเคชัน wpf (VS 08)
ก่อนที่จะดำเนินการต่อไปฉันจะพูดถึงฉันได้ลองวิธีแก้ไขแล้วดังนี้: ฉันจะตั้งค่าไอคอนสำหรับแอปพลิเคชันของฉันใน Visual Studio 2008 ได้อย่างไร ตั้งค่าไอคอนแอปพลิเคชันจากทรัพยากรใน VS 05 ฉันกำลังพยายามตั้งค่าไอคอนสำหรับแอปพลิเคชันของฉัน AFAIK ฉันต้องการ 3 ภาพหรือไม่? 1 ภาพคือภาพจริงใน explorer เมื่อคลิกที่. exe (ภาพขนาดย่อสำหรับ exe) 1 ภาพ (เล็ก ๆ ) ที่มุมบนซ้าย (16 x 16 หรือไม่ไม่แน่ใจทั้งหมด) 1 ภาพในท่าเรือเมนูเริ่มทางด้านซ้ายของแอพ (อาจเป็น 32x32 หรือเปล่าไม่แน่ใจอีกครั้ง) เป็นอย่างดี ตอนนี้ฉันได้เลือกไอคอนแล้ว ฉันจะใช้มันในสถานการณ์ใดสถานการณ์หนึ่งข้างต้นได้อย่างไร ฉันได้ลองเพิ่มในแหล่งข้อมูลแล้วดูเหมือนจะไม่มีอะไรเกิดขึ้น ตามโซลูชัน SO แรกนั้น "ขั้นแรกให้ไปที่มุมมองทรัพยากร (จากเมนู: มุมมอง -> หน้าต่างอื่น -> มุมมองทรัพยากร) …

4
ใช้ StringFormat เพื่อเพิ่มสตริงในการโยง WPF XAML
ฉันมีแอปพลิเคชัน WPF 4 ที่มี TextBlock ซึ่งมีการผูกทางเดียวกับค่าจำนวนเต็ม (ในกรณีนี้อุณหภูมิเป็นองศาเซลเซียส) XAML มีลักษณะดังนี้: <TextBlock x:Name="textBlockTemperature"> <Run Text="{Binding CelsiusTemp, Mode=OneWay}"/></TextBlock> ใช้งานได้ดีสำหรับการแสดงค่าอุณหภูมิจริง แต่ฉันต้องการจัดรูปแบบค่านี้เพื่อให้รวม° C แทนที่จะเป็นเพียงตัวเลข (30 ° C แทนที่จะเป็นเพียง 30) ฉันอ่านเกี่ยวกับ StringFormat มาแล้วและฉันได้เห็นตัวอย่างทั่วไปหลายอย่างเช่นนี้: // format the bound value as a currency <TextBlock Text="{Binding Amount, StringFormat={}{0:C}}" /> และ // preface the bound value with a string and …

9
ฉันจะเปิดหน้าต่างที่สองจากหน้าต่างแรกใน WPF ได้อย่างไร
ฉันยังใหม่กับ WPF ฉันมีสองหน้าต่างเช่น window1 และ window2 ฉันมีปุ่มเดียวใน window1 ถ้าฉันคลิกปุ่มนั้นหน้าต่าง 2 จะต้องเปิดขึ้น จะทำอย่างไรดี? นี่คือรหัสที่ฉันลอง: window2.show();
125 c#  wpf 

12
WPF Numeric UpDown control อยู่ที่ไหน
เข้าสู่โครงการ WPF ที่จริงจังครั้งแรก ดูเหมือนว่าจะมีการควบคุมพื้นฐานหลายอย่างที่ขาดหายไป โดยเฉพาะฉันกำลังมองหาการควบคุมการขึ้นลงของตัวเลข มีการปล่อยนอกวงไหมที่ฉันพลาด? ไม่รู้สึกเหมือนเขียนการควบคุมของตัวเองเลยจริงๆ ฉันไม่ต้องการใช้ WindowsFormHost และใช้ WinForm ctl ฉันต้องการให้มันเป็น WPF อย่างสมบูรณ์โดยไม่มีขยะเดิม ขอบคุณ

6
การพุชคุณสมบัติ GUI แบบอ่านอย่างเดียวกลับเข้าสู่ ViewModel
ฉันต้องการเขียน ViewModel ที่มักจะรู้สถานะปัจจุบันของคุณสมบัติการอ้างอิงแบบอ่านอย่างเดียวจาก View โดยเฉพาะ GUI ของฉันมี FlowDocumentPageViewer ซึ่งแสดงทีละหน้าจาก FlowDocument FlowDocumentPageViewer แสดงคุณสมบัติการอ้างอิงแบบอ่านอย่างเดียวสองรายการที่เรียกว่า CanGoToPreviousPage และ CanGoToNextPage ฉันต้องการให้ ViewModel ของฉันทราบค่าของคุณสมบัติ View ทั้งสองนี้เสมอ ฉันคิดว่าฉันสามารถทำได้ด้วยฐานข้อมูล OneWayToSource: <FlowDocumentPageViewer CanGoToNextPage="{Binding NextPageAvailable, Mode=OneWayToSource}" ...> หากอนุญาตสิ่งนี้จะสมบูรณ์แบบ: เมื่อใดก็ตามที่คุณสมบัติ CanGoToNextPage ของ FlowDocumentPageViewer เปลี่ยนไปค่าใหม่จะถูกผลักลงไปในคุณสมบัติ NextPageAvailable ของ ViewModel ซึ่งเป็นสิ่งที่ฉันต้องการ ขออภัยสิ่งนี้ไม่ได้รวบรวม: ฉันได้รับข้อผิดพลาดว่าคุณสมบัติ 'CanGoToPreviousPage' เป็นแบบอ่านอย่างเดียวและไม่สามารถตั้งค่าจากมาร์กอัปได้ เห็นได้ชัดว่าคุณสมบัติแบบอ่านอย่างเดียวไม่รองรับการเชื่อมต่อฐานข้อมูลใด ๆแม้แต่การเชื่อมต่อฐานข้อมูลที่เป็นแบบอ่านอย่างเดียวที่เกี่ยวกับคุณสมบัตินั้น ฉันสามารถทำให้คุณสมบัติของ ViewModel ของฉันเป็น DependencyProperties และทำการผูก OneWay ไปในทางอื่น …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.