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

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

10
การเริ่มเหตุการณ์ดับเบิลคลิกจากรายการ WPF ListView โดยใช้ MVVM
ในแอปพลิเคชัน WPF โดยใช้ MVVM ฉันมี usercontrol พร้อมรายการมุมมองรายการ ในขณะทำงานจะใช้ databinding เพื่อเติมเต็ม listview ด้วยคอลเล็กชันของวัตถุ อะไรคือวิธีที่ถูกต้องในการแนบเหตุการณ์ดับเบิลคลิกเข้ากับรายการในมุมมองรายการเพื่อที่เมื่อรายการในมุมมองรายการถูกดับเบิลคลิกเหตุการณ์ที่เกี่ยวข้องในโมเดลมุมมองจะเริ่มทำงานและมีการอ้างอิงถึงรายการที่คลิก มันจะทำได้อย่างไรด้วยวิธี MVVM ที่สะอาดเช่นไม่มีรหัสอยู่ข้างหลังใน View?
102 wpf  mvvm 

10
จะใส่บรรทัดใหม่ลงในตัวควบคุม wpf TextBlock ได้อย่างไร
ฉันกำลังดึงข้อความจากไฟล์ XML และฉันต้องการแทรกบรรทัดใหม่ที่ตีความโดยบล็อกข้อความที่แสดงเป็นบรรทัดใหม่ ฉันพยายามแล้ว: <data>Foo bar baz \n baz bar</data> แต่ข้อมูลยังคงแสดงโดยไม่ขึ้นบรรทัดใหม่ ฉันตั้งค่าเนื้อหาของ<data>ผ่าน.Textคุณสมบัติผ่าน C # ฉันต้องใส่อะไรใน XML เพื่อให้แสดงบรรทัดใหม่ใน GUI ฉันได้ลองตั้งค่าข้อความใน XAML ด้วยตนเองแล้ว: <TextBlock Margin="0 15 0 0" Width="600"> There 
 is a new line. </TextBlock> และแม้ว่าอักขระที่เข้ารหัสจะไม่ปรากฏใน GUI แต่ก็ไม่ได้ให้บรรทัดใหม่แก่ฉัน
102 c#  wpf  newline  textblock 

9
วิธีสร้าง WPF UserControl ด้วยเนื้อหา NAMED
ฉันมีชุดการควบคุมพร้อมคำสั่งและตรรกะที่แนบมาซึ่งใช้ซ้ำในลักษณะเดียวกันอยู่ตลอดเวลา ฉันตัดสินใจที่จะสร้างการควบคุมผู้ใช้ที่มีการควบคุมและตรรกะทั่วไปทั้งหมด อย่างไรก็ตามฉันต้องการการควบคุมเพื่อให้สามารถเก็บเนื้อหาที่สามารถตั้งชื่อได้ ฉันลองทำสิ่งต่อไปนี้: <UserControl.ContentTemplate> <DataTemplate> <Button>a reused button</Button> <ContentPresenter Content="{TemplateBinding Content}"/> <Button>a reused button</Button> </DataTemplate> </UserControl.ContentTemplate> อย่างไรก็ตามดูเหมือนว่าเนื้อหาใด ๆ ที่อยู่ในส่วนควบคุมผู้ใช้จะไม่สามารถตั้งชื่อได้ ตัวอย่างเช่นถ้าฉันใช้การควบคุมในลักษณะต่อไปนี้: <lib:UserControl1> <Button Name="buttonName">content</Button> </lib:UserControl1> ฉันได้รับข้อผิดพลาดต่อไปนี้: ไม่สามารถตั้งค่าแอตทริบิวต์ Name "buttonName" ในองค์ประกอบ "Button" 'ปุ่ม' อยู่ภายใต้ขอบเขตขององค์ประกอบ 'UserControl1' ซึ่งมีชื่อที่ลงทะเบียนไว้แล้วเมื่อถูกกำหนดในขอบเขตอื่น ถ้าฉันลบ buttonName ออกมันจะคอมไพล์ แต่ฉันต้องสามารถตั้งชื่อเนื้อหาได้ ฉันจะบรรลุเป้าหมายนี้ได้อย่างไร?
102 c#  wpf  xaml  user-controls  controls 


6
แนวทางปฏิบัติที่ดีที่สุดสำหรับการผูกข้อมูลและการตรวจสอบความถูกต้องของ WPF
ฉันมีแอปพลิเคชัน WPF ที่ง่ายมากซึ่งฉันใช้การผูกข้อมูลเพื่ออนุญาตให้แก้ไขวัตถุ CLR ที่กำหนดเองบางอย่าง ตอนนี้ฉันต้องการใส่การตรวจสอบอินพุตเมื่อผู้ใช้คลิกบันทึก อย่างไรก็ตามหนังสือ WPF ทั้งหมดที่ฉันอ่านไม่ได้ให้ความสำคัญกับปัญหานี้เลย ฉันเห็นว่าคุณสามารถสร้าง ValidationRules ที่กำหนดเองได้ แต่ฉันสงสัยว่านี่จะเกินความต้องการของฉันหรือไม่ คำถามของฉันคือ: มีแอปพลิเคชันหรือบทความตัวอย่างที่ดีที่ไหนสักแห่งที่แสดงแนวทางปฏิบัติที่ดีที่สุดในการตรวจสอบความถูกต้องของข้อมูลผู้ใช้ใน WPF หรือไม่

13
วิธีที่ดีที่สุดในการซ่อนหน้าต่างจากตัวสลับโปรแกรม Alt-Tab?
ฉันเป็นนักพัฒนา. NET มาหลายปีแล้วและนี่ก็ยังคงเป็นหนึ่งในสิ่งเหล่านั้นที่ฉันไม่รู้ว่าต้องทำอย่างไร เป็นเรื่องง่ายที่จะซ่อนหน้าต่างจากแถบงานผ่านคุณสมบัติทั้งใน Windows Forms และ WPF แต่เท่าที่ฉันสามารถบอกได้สิ่งนี้ไม่ได้รับประกันว่า (หรือจำเป็นต้องมีผลต่อ) ว่าจะถูกซ่อนจากกล่องโต้ตอบAlt+ ↹Tabฉันเคยเห็นหน้าต่างที่มองไม่เห็นปรากฏในAlt+ ↹Tabและฉันแค่สงสัยว่าอะไรคือวิธีที่ดีที่สุดในการรับประกันว่าหน้าต่างจะไม่ปรากฏ (มองเห็นได้หรือไม่) ในกล่องโต้ตอบAlt+↹Tab อัปเดต:โปรดดูวิธีแก้ปัญหาที่โพสต์ไว้ด้านล่าง ฉันไม่ได้รับอนุญาตให้ทำเครื่องหมายคำตอบของตัวเองเป็นคำตอบ แต่จนถึงตอนนี้มันเป็นคำตอบเดียวที่ใช้ได้ผล อัปเดต 2:ตอนนี้ Franci Penov มีวิธีแก้ปัญหาที่เหมาะสมซึ่งดูดีมาก แต่ยังไม่ได้ลองด้วยตัวเอง เกี่ยวข้องกับ Win32 บางตัว แต่หลีกเลี่ยงการสร้างหน้าต่างนอกหน้าจอที่ง่อย ๆ
101 .net  wpf  winforms  alt-tab 

11
เลือก TreeView Node เมื่อคลิกขวาก่อนแสดง ContextMenu
ฉันต้องการเลือก WPF TreeView Node เมื่อคลิกขวาก่อนที่จะแสดง ContextMenu สำหรับ WinForms ฉันสามารถใช้รหัสเช่นนี้ค้นหาโหนดที่คลิกภายใต้เมนูบริบททางเลือก WPF คืออะไร?

3
ไม่พบข้อยกเว้นของงานโดยการรอบนงานหรือการเข้าถึงคุณสมบัติข้อยกเว้น เป็นผลให้ข้อยกเว้นที่ไม่สามารถสังเกตได้คือ
สิ่งนี้หมายความว่าอย่างไรและจะแก้ไขได้อย่างไร? ฉันใช้งาน TPL ข้อผิดพลาดทั้งหมด ไม่พบข้อยกเว้นของงานโดยการรอบนงานหรือการเข้าถึงคุณสมบัติข้อยกเว้น ด้วยเหตุนี้ข้อยกเว้นที่ไม่สามารถสังเกตได้จึงถูกเปลี่ยนใหม่โดยเธรด Finalizer ใน System.Threading.Tasks.TaskExceptionHolder.Finalize () mscorlib

9
ดี NumericUpDown เทียบเท่าใน WPF หรือไม่ [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการเมื่อ4 ปีที่แล้วปีที่แล้ว ปรับปรุงคำถามนี้ ฉันกำลังมองหาการควบคุม NumericUpDown (aka number spinner) อย่างง่ายใน WPF ดูเหมือนว่าจะเป็นการขาดการควบคุมใน WPF ต้องมีบางอย่างที่มีอยู่แล้วและฉันไม่ชอบที่จะประดิษฐ์วงล้อขึ้นมาใหม่

14
เหตุใดฉันจึงไม่สามารถอ้างอิง System.ComponentModel.DataAnnotations
ฉันพยายามใช้ DataAnnotations ในโปรเจ็กต์ WPF ของฉันเพื่อระบุความยาวสูงสุดของสตริงดังต่อไปนี้: using System.ComponentModel.DataAnnotations; อย่างไรก็ตามฉันได้รับข้อผิดพลาด ชนิดหรือชื่อเนมสเปซ 'DataAnnotations' ไม่มีอยู่ในเนมสเปซ 'System.ComponentModel' (คุณไม่มีการอ้างอิงแอสเซมบลีหรือไม่) ผมเคยเห็นตัวอย่างอื่น ๆ ที่DataAnnotations ไม่อยู่ใน namespace นี้ ฉันใช้ C # 4 มีเหตุผลใดบ้างที่ฉันไม่สามารถใช้สิ่งนี้ได้? ฉันจะแก้ไขอะไรได้บ้าง
100 c#  wpf  data-annotations 

3
จะตั้งค่าการผูกใน Code ได้อย่างไร?
ฉันจำเป็นต้องตั้งค่าการผูกรหัส ดูเหมือนฉันจะเข้าใจไม่ถูก นี่คือสิ่งที่ฉันได้ลอง: XAML: <TextBox Name="txtText"></TextBox> รหัสหลัง: Binding myBinding = new Binding("SomeString"); myBinding.Source = ViewModel.SomeString; myBinding.Mode = BindingMode.TwoWay; myBinding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged; BindingOperations.SetBinding(txtText, TextBox.TextProperty, myBinding); ดู public string SomeString { get { return someString; } set { someString= value; OnPropertyChanged("SomeString"); } } คุณสมบัติไม่ได้รับการอัปเดตเมื่อฉันตั้งค่า ผมทำอะไรผิดหรือเปล่า?
100 c#  wpf  xaml  data-binding 

4
บรรทัดคำสั่ง WPF
ฉันกำลังพยายามสร้างแอปพลิเคชัน WPF ที่รับอาร์กิวเมนต์บรรทัดคำสั่ง หากไม่มีการโต้แย้งหน้าต่างหลักจะปรากฏขึ้น ในกรณีของอาร์กิวเมนต์บรรทัดคำสั่งที่เฉพาะเจาะจงโค้ดควรรันโดยไม่มี GUI และออกเมื่อเสร็จสิ้น ข้อเสนอแนะใด ๆ เกี่ยวกับวิธีการนี้จะได้รับการชื่นชมอย่างถูกต้อง
99 wpf  command-line  exit 

4
ฉันจะส่งค่าคงที่สำหรับการโยง 1 ครั้งในการโยงหลายครั้งได้อย่างไร
ฉันมีหลายการผูก <TextBlock> <TextBlock.Text> <MultiBinding Converter="{StaticResource myConverter}"> <Binding Path="myFirst.Value" /> <Binding Path="mySecond.Value" /> </MultiBinding> </TextBlock.Text> </TextBlock> และฉันต้องการส่งค่าคงที่เช่น "123" ไปยังหนึ่งในสองการเชื่อมโยงด้านบน ฉันจะทำได้อย่างไรโดยใช้ XAML

3
การเข้าถึง UI (Main) เธรดอย่างปลอดภัยใน WPF
ฉันมีแอปพลิเคชันที่อัปเดตดาต้ากริดของฉันทุกครั้งที่ไฟล์บันทึกที่ฉันกำลังดูได้รับการอัปเดต (ต่อท้ายด้วยข้อความใหม่) ในลักษณะต่อไปนี้: private void DGAddRow(string name, FunctionType ft) { ASCIIEncoding ascii = new ASCIIEncoding(); CommDGDataSource ds = new CommDGDataSource(); int position = 0; string[] data_split = ft.Data.Split(' '); foreach (AttributeType at in ft.Types) { if (at.IsAddress) { ds.Source = HexString2Ascii(data_split[position]); ds.Destination = HexString2Ascii(data_split[position+1]); break; } else { position += …

9
มี Selected Tab Changed Event ใน WPF Tab Control มาตรฐานหรือไม่
ใน WPF มีเหตุการณ์ที่สามารถใช้เพื่อกำหนดเมื่อTabControlแท็บที่เลือกเปลี่ยนไปหรือไม่? ฉันได้ลองใช้แล้วTabControl.SelectionChangedแต่มันถูกยิงหลายครั้งเมื่อมีการเปลี่ยนแปลงการเลือกของเด็กในแท็บ
99 wpf  events  tabcontrol 

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