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

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

4
จะใช้ DockStyle.fill สำหรับการควบคุมมาตรฐานใน WPF ได้อย่างไร?
ฉันใช้จากแบบฟอร์ม windows ฉันสร้างแผงควบคุมวางแผงควบคุมไว้ข้างในและให้พวกเขาDockStyle.Fillขยายขนาดให้ใหญ่ที่สุดกับแผงรอบข้าง ใน WPF ฉันต้องการมีเหมือนกัน ฉันมี TabControl และฉันต้องการให้ขนาดของมันกรอกแบบฟอร์มให้มากที่สุด ฉันมีตัวควบคุม Ribbon (RibbonControlsLibrary) และต้องการให้ส่วนที่เหลือของแบบฟอร์มเต็มไปด้วย TabControl ที่ขนาดสูงสุด (ฉันไม่ต้องการเชื่อมต่อการควบคุมเช่นการเชื่อมต่อใน Visual Studio เพียงกลไกการเชื่อมต่อแบบเก่า)
92 c#  wpf  tabcontrol  docking 

6
การตั้งค่าลำดับแท็บใน WPF
ฉันจะตั้งค่าลำดับแท็บใน WPF ได้อย่างไร ฉันมี ItemsControl ที่มีบางรายการขยายและบางรายการยุบและต้องการข้ามรายการที่ยุบเมื่อฉันกำลังแท็บ ความคิดใด ๆ ?

11
คลิกเดียวแก้ไขใน WPF DataGrid
ฉันต้องการให้ผู้ใช้สามารถนำเซลล์เข้าสู่โหมดแก้ไขและไฮไลต์แถวที่เซลล์นั้นอยู่ในคลิกเดียว ตามค่าเริ่มต้นนี่คือดับเบิลคลิก ฉันจะลบล้างหรือใช้สิ่งนี้ได้อย่างไร
92 c#  .net  wpf  events  xaml 

2
“ {Binding Path =.}” หมายความว่าอย่างไรในการเชื่อม WPF
ความ{Binding Path=.}หมายในการผูก WPF คืออะไร? ฉันเห็นบางคนใช้ แต่ไม่พบคำอธิบายใด ๆ มีสัญลักษณ์พิเศษอื่น ๆ ในไวยากรณ์การผูก (นอกเหนือจาก{Binding /}) หรือไม่?
92 wpf  data-binding  xaml 

9
แสดงนาฬิกาทรายเมื่อแอปพลิเคชันไม่ว่าง
สำหรับมุมมองที่สร้างโดยใช้ WPF ฉันต้องการเปลี่ยนเคอร์เซอร์ของเมาส์เป็นนาฬิกาทรายเมื่อแอปพลิเคชันไม่ว่างและไม่ตอบสนอง ทางออกหนึ่งคือการเพิ่ม this.Cursor = Cursors.Wait; ไปยังสถานที่ทั้งหมดที่อาจทำให้ UI ไม่ตอบสนอง แต่เห็นได้ชัดว่านี่ไม่ใช่ทางออกที่ดีที่สุด ฉันสงสัยว่าอะไรคือวิธีที่ดีที่สุดในการบรรลุเป้าหมายนี้ เป็นไปได้หรือไม่ที่จะบรรลุสิ่งนี้โดยใช้สไตล์หรือทรัพยากร? ขอบคุณ
92 c#  wpf 

2
วิธีกำหนดเป้าหมายการควบคุมทั้งหมด (สไตล์ WPF)
ฉันสามารถระบุสไตล์ที่ใช้กับองค์ประกอบทั้งหมดได้หรือไม่ ฉันเหนื่อย <Style TargetType="Control"> <Setter Property="Margin" Value="0,5" /> </Style> แต่มันไม่ทำอะไรเลย

20
เมื่อล้าง ObservableCollection ไม่มีรายการใน e.OldItems
ฉันมีบางอย่างที่นี่ที่ทำให้ฉันไม่ทันระวัง ฉันมี ObservableCollection ของ T ที่เต็มไปด้วยไอเท็ม ฉันยังมีตัวจัดการเหตุการณ์ที่แนบมากับเหตุการณ์ CollectionChanged เมื่อคุณล้างคอลเลกชันจะทำให้เกิดเหตุการณ์ CollectionChanged ด้วย e.Action ที่ตั้งค่าเป็น NotifyCollectionChangedAction.Reset โอเคเป็นเรื่องปกติ แต่สิ่งที่แปลกคือไม่มี e.OldItems หรือ e.NewItems มีอะไรอยู่ในนั้น ฉันคาดหวังว่า e.OldItems จะเต็มไปด้วยรายการทั้งหมดที่ถูกลบออกจากคอลเลกชัน มีใครเห็นสิ่งนี้อีกบ้าง? แล้วถ้าเป็นเช่นนั้นพวกเขาไปถึงมันได้อย่างไร? ความเป็นมาบางประการ: ฉันใช้เหตุการณ์ CollectionChanged เพื่อแนบและแยกออกจากเหตุการณ์อื่นดังนั้นหากฉันไม่ได้รับไอเท็มใด ๆ ใน e.OldItems ... ฉันจะไม่สามารถแยกออกจากเหตุการณ์นั้น ชี้แจง: ฉันจะรู้ว่าเอกสารไม่ตรงไปตรงมาว่ารัฐจะมีการทำงานในลักษณะนี้ แต่สำหรับการกระทำอื่น ๆ มันเป็นการแจ้งให้ฉันทราบถึงสิ่งที่ทำลงไป ดังนั้นสมมติฐานของฉันก็คือมันจะบอกฉัน ... ในกรณีของ Clear / Reset เช่นกัน ด้านล่างนี้คือตัวอย่างโค้ดหากคุณต้องการทำซ้ำด้วยตัวเอง ก่อนอื่นจาก xaml: <Window …

8
MVVM ไม่มีจุดหมายหรือไม่? [ปิด]
ตามที่กล่าวมาในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบถาม & ตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจก่อให้เกิดการถกเถียงโต้แย้งการสำรวจความคิดเห็นหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงได้และอาจเปิดขึ้นมาใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อรับคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา การใช้ MVVM แบบดั้งเดิมนั้นไม่มีจุดหมายหรือไม่? ฉันกำลังสร้างแอปพลิเคชันใหม่และฉันพิจารณา Windows Forms และ WPF ฉันเลือก WPF เพราะเป็นหลักฐานในอนาคตและมีความยืดหยุ่นมากมาย มีโค้ดน้อยลงและทำการเปลี่ยนแปลงที่สำคัญกับ UI ของคุณได้ง่ายขึ้นโดยใช้ XAML เนื่องจากตัวเลือกสำหรับ WPF นั้นชัดเจนฉันจึงคิดว่าฉันสามารถไปได้ทุกทางโดยใช้ MVVM เป็นสถาปัตยกรรมแอปพลิเคชันของฉันเนื่องจากมีความสามารถในการผสมผสานความกังวลในการแยกและการทดสอบหน่วย ในทางทฤษฎีดูเหมือนว่าจะสวยงามเหมือนจอกศักดิ์สิทธิ์ของการเขียนโปรแกรม UI การผจญภัยสั้น ๆ นี้ อย่างไรก็ตามได้กลายเป็นอาการปวดหัวอย่างแท้จริง ตามที่คาดไว้ในทางปฏิบัติฉันพบว่าฉันได้แลกเปลี่ยนปัญหาหนึ่งสำหรับอีกปัญหาหนึ่ง ฉันมักจะเป็นโปรแกรมเมอร์ที่หมกมุ่นอยู่กับการที่ฉันต้องการทำสิ่งต่างๆให้ถูกต้องเพื่อที่ฉันจะได้ผลลัพธ์ที่ถูกต้องและอาจจะกลายเป็นโปรแกรมเมอร์ที่เก่งขึ้น รูปแบบ MVVM ทำให้การทดสอบประสิทธิภาพการทำงานของฉันล้มเหลวและเพิ่งกลายเป็นการแฮ็กที่ยิ่งใหญ่! กรณีที่ชัดเจนคือการเพิ่มการสนับสนุนสำหรับกล่องโต้ตอบ Modal วิธีที่ถูกต้องคือวางกล่องโต้ตอบและผูกเข้ากับโมเดลมุมมอง การทำงานนี้เป็นเรื่องยาก เพื่อให้ได้รับประโยชน์จากรูปแบบ MVVM คุณต้องแจกจ่ายโค้ดในหลาย ๆ ที่ตลอดทั้งเลเยอร์ของแอปพลิเคชันของคุณ คุณยังต้องใช้โครงสร้างการเขียนโปรแกรมที่ลึกลับเช่นเทมเพลตและนิพจน์ lamba …
91 .net  wpf  mvvm 

9
ตั้งโฟกัสบนกล่องข้อความใน xaml wpf
แม้จะมีบางโพสต์ในฟอรัมนี้และอื่น ๆ ฉันไม่พบบางสิ่งที่บอกวิธีตั้งค่าโฟกัสที่ไฟล์TextBox. ฉันมี UserControl ที่มีป้ายกำกับและกล่องข้อความมากมาย เมื่อโหลดแบบฟอร์มฉันต้องการให้กล่องข้อความเฉพาะมีโฟกัส ฉันได้ตั้งค่า tabIndex แล้ว แต่ดูเหมือนจะไม่ได้ผล ข้อเสนอแนะใด ๆ ?
91 wpf  textbox  focus 

3
เปลี่ยน WPF DataTemplate สำหรับรายการ ListBox หากเลือก
ฉันจำเป็นต้องเปลี่ยน DataTemplate สำหรับรายการใน ListBox ขึ้นอยู่กับว่ารายการนั้นถูกเลือกหรือไม่ (แสดงข้อมูลอื่น / เพิ่มเติมเมื่อเลือก) ฉันไม่ได้รับเหตุการณ์ GotFocus / LostFocus ในองค์ประกอบด้านบนสุดใน DataTemplate (StackPanel) เมื่อคลิกรายการกล่องรายการที่เป็นปัญหา (ผ่านการแท็บเท่านั้น) และฉันไม่มีความคิด
91 .net  wpf 

5
ความแตกต่างระหว่างคุณสมบัติการพึ่งพาและคุณสมบัติที่แนบมาใน WPF คืออะไร?
อะไรคือความแตกต่างระหว่างคุณสมบัติการพึ่งพา (กำหนดเอง) และคุณสมบัติที่แนบมาใน WPF? แต่ละอย่างใช้อะไรบ้าง? การใช้งานโดยทั่วไปแตกต่างกันอย่างไร?

4
เชื่อมต่อสตริงแทนการใช้ TextBlocks ซ้อนกัน
ฉันต้องการแสดงรายการอ็อบเจ็กต์ของลูกค้าใน WPF ItemsControl ฉันได้สร้าง DataTemplate สำหรับสิ่งนี้: <DataTemplate DataType="{x:Type myNameSpace:Customer}"> <StackPanel Orientation="Horizontal" Margin="10"> <CheckBox"></CheckBox> <TextBlock Text="{Binding Path=Number}"></TextBlock> <TextBlock Text=" - "></TextBlock> <TextBlock Text="{Binding Path=Name}"></TextBlock> </StackPanel> </DataTemplate> ดังนั้นสิ่งที่ฉันต้องการโดยทั่วไปคือรายการง่ายๆ (พร้อมช่องทำเครื่องหมาย) ที่มี NUMBER - NAME ไม่มีวิธีใดที่ฉันสามารถต่อหมายเลขและชื่อในส่วนการผูกได้โดยตรง?
91 .net  wpf  datatemplate 


7
ผูกกับวิธีการใน WPF หรือไม่
คุณผูกกับเมธอดอ็อบเจ็กต์ในสถานการณ์นี้ใน WPF ได้อย่างไร public class RootObject { public string Name { get; } public ObservableCollection<ChildObject> GetChildren() {...} } public class ChildObject { public string Name { get; } } XAML: <TreeView ItemsSource="some list of RootObjects"> <TreeView.Resources> <HierarchicalDataTemplate DataType="{x:Type data:RootObject}" ItemsSource="???"> <TextBlock Text="{Binding Path=Name}" /> </HierarchicalDataTemplate> <HierarchicalDataTemplate DataType="{x:Type data:ChildObject}"> <TextBlock Text="{Binding …
90 .net  wpf  data-binding  xaml 

13
จะรับขนาดของหน้าจอปัจจุบันใน WPF ได้อย่างไร?
ฉันรู้ว่าฉันสามารถรับขนาดของหน้าจอหลักได้โดยใช้ไฟล์ System.Windows.SystemParameters.PrimaryScreenWidth; System.Windows.SystemParameters.PrimaryScreenHeight; แต่ฉันจะได้ขนาดของหน้าจอปัจจุบันได้อย่างไร? (ผู้ใช้หลายหน้าจอไม่ได้ใช้หน้าจอหลักเสมอไปและไม่ใช่ว่าทุกหน้าจอจะใช้ความละเอียดเดียวกันใช่ไหม) จะเป็นการดีที่สามารถรับขนาดจาก XAML ได้ แต่การทำเช่นนั้นจากรหัส (C #) ก็เพียงพอแล้ว
90 c#  wpf  xaml  size  screen 

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