Tôi đã bỏ qua một ứng dụng SL3 nhanh và nó là khó có được trọng tâm ban đầu đi đến UserControl cho phép một mình kiểm soát trong điều khiển Silverlight.
Tuy nhiên, xem nếu this solution giải quyết vấn đề này cho bạn. Bạn sẽ phải sử dụng một chút JavaScript.
Dưới đây là đoạn code để tham khảo:
<%@ Page Language="C#" AutoEventWireup="true" %>
<%@ Register Assembly="System.Web.Silverlight" Namespace="System.Web.UI.SilverlightControls"
TagPrefix="asp" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" style="height:100%;">
<head runat="server">
<title>Test Page For TextFocusTest</title>
<script type="text/javascript">
window.onload = function()
{
document.getElementById('Xaml1').focus();
}
</script>
</head>
<body style="height:100%;margin:0;">
<form id="form1" runat="server" style="height:100%;">
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<div style="height:100%;">
<asp:Silverlight ID="Xaml1" runat="server" Source="~/ClientBin/TextFocusTest.xap" Version="2.0" Width="100%" Height="100%" />
</div>
</form>
</body>
</html>
Khi kiểm soát SL của bạn đã tập trung, bạn có thể tiếp tục thiết lập focus cho một điều khiển cụ thể sử dụng một cái gì đó như:
namespace SilverlightApplication2
{
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
this.GotFocus += new RoutedEventHandler (MainPage_GotFocus);
}
void MainPage_GotFocus (object sender, RoutedEventArgs e)
{
uxLogin.Focus();
}
}
}
nơi uxLogin được định nghĩa trong XAML là:
<TextBox x:Name="uxLogin" Height="25" Width="100" />
Nguồn
2009-07-14 16:45:40
Giải pháp này dường như hoạt động trong IE nhưng tôi không thể điều khiển Silverlight để lấy tiêu điểm trong Firefox hoặc Chrome. –
Vẫn không thể làm việc này trong các trình duyệt khác nhưng tôi sẽ thực hiện giải pháp này vì hầu hết người dùng sẽ ở trong IE và những người khác sẽ chỉ cần nhấp vào điều khiển Silverlight. Cảm ơn! –
chào mừng bạn. Tôi đã có rất nhiều vấn đề với Silverlight và FF - thay đổi kích thước và chỉ nhận được sự kiểm soát để hiển thị. Trong một trường hợp, cuối cùng tôi đã từ bỏ và có một giải pháp cho IE và một giải pháp khác cho FF. Không phải là cách tốt nhất, nhưng tốt thôi. –